【问题标题】:backpack for laravel segment missing during upload上传期间缺少 laravel 段的背包
【发布时间】:2018-01-16 14:24:42
【问题描述】:

我创建了一个 CRUD(使用 laravel 的背包 crud)来上传证书,当我上传我使用的 pdf 时

 $this->crud->addField([

      'name'  => 'respaldo',
      'label' => 'Respaldo',
      'type'  => 'upload',
      'upload' => true,

      'wrapperAttributes' => [
            'class' => 'form-group col-md-6'
       ],
    ]);

当我想查看上传文件的链接时,路径中缺少存储,所以我将它添加到了一个 mutator 中,见下文

 public function setRespaldoAttribute($value)
 {   

  $attribute_name = "respaldo";
  $disk = "public";
  $destination_path = "uploads/respaldos";
  $this->uploadFileToDisk($value, $attribute_name, $disk,   $destination_path);
 }    

 public function getRespaldoLink() {

 return '<a href="'.asset('storage/'.$this->respaldo).'" target="_blank">
             Descargar</a>';
 } 

现在,当单击它显示在列表视图上的链接时,问题是当我单击编辑时,那里缺少“存储”段,所以我得到 404。看图

【问题讨论】:

  • 嗨罗德里戈。文件是否上传到磁盘上?如果是这样,那一定是链接问题。我建议你看看你在 filesystems.php 中使用的磁盘——如果它是公共的。如果您尝试“上传”磁盘,并相应地更改目标路径,怎么样?
  • 我现在使用“uploads”,并且只使用“respaldo”文件夹,文件保存在 (public/uploads/respaldo/) 中,路径在 DB 上保存为 respaldos/276e91a4550ddb4982405286148181e4.pdf,我有使用 -> 在 listview 上显示链接,在编辑相同时,上传中缺少路由,找不到为上传添加前缀的方法。

标签: laravel laravel-backpack


【解决方案1】:

我遇到了同样的问题并尝试修改链接,然后在浏览器上显示它以供用户在更新或显示 CRUD 中预览。

问题是无论路径存储在数据库中,它都会在没有头文件夹的情况下在浏览器上弹出。正如我们所知,我们可以使用 Laravel LIKE 资产('storage/'.$file_path)修改头文件夹

因此,您需要在存储到数据库之前更新路径。

  1. 搜索和更新文件 HasUploadFields.php
  2. 使用附加组件“storage/”更新这一行,如下所示: $this->attributes[$attribute_name] = 'storage/' 。 $file_path;
  3. 对 uploadMultipleFilesToDisk 方法执行相同操作
  4. 现在对于所有上传的新文件,它会在存储文件路径之前添加“storage/”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2014-07-26
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多