【问题标题】:Laravel Storage File not downloading (File not found)Laravel 存储文件未下载(未找到文件)
【发布时间】:2022-01-15 03:56:45
【问题描述】:

在我的 laravel 项目中,我有上传文件夹,我试图从那里下载文件。

文件夹层次结构:

-Project
--Public
---Storage (created using php artisan storage:link)
----uploads
-----file.jpg ( i am trying to download)

控制器:

public function getdata(Request $request)
    {
        return Storage::download('/storage/uploads'.$image_name);
    //image name is file.jpg
      }

错误:

File not found at path: storage/uploads["file.jpg"]

【问题讨论】:

  • 你是怎么得到这个$image_name变量的?
  • $image_name = Files::select('file_name')->where('custom_code', $request->id)->first();

标签: laravel laravel-5 eloquent


【解决方案1】:

在路径中找不到文件:storage/uploads["file.jpg"]

[] 这显示您在path 中传递数组,并且/上传

后丢失

您的路径应该如下所示

storage/uploads/file.jpg

以上实现后,您的代码将如下所示

Storage::download('/storage/uploads/'.$image_name);

从数据库中获取图片

$image_name = Files::select('file_name')->where('custom_code', $request->id)->first();

您可以使用->first() 和可使用$image_name->file_name 访问的图像列

以你的方式$image_name[0] 访问。

【讨论】:

  • 为什么它返回数组。我的控制器是: $image_name= Files::where('custom_code','=',$request->id)->pluck('file_name'); return Storage::download('/storage/uploads/'.$image_name);
  • 更新答案..
  • 在路径找不到文件:storage/uploads/{"file_name":"file.jpg"}
【解决方案2】:

你应该做的是这样的:

public function getdata(Request $request)
{
   return Storage::download("uploads/" . $image_name['file_name']);
}

参考: https://laravel.com/docs/8.x/filesystem#downloading-files

【讨论】:

  • 在路径中找不到文件:uploads/{"file_name":"file.jpg"}
  • 等等,你的 $image_name 是一个数组??
  • 127.0.0.1:8000/api/get-data/437121 我正在尝试像这样下载它
  • 437121 代表什么??
  • 该文件的 ID/名称
【解决方案3】:

你可以这样做

return Storage::disk('public')->download('uploads/'. $image_name);

【讨论】:

  • 突出显示的错误:未定义的方法“下载”。
  • 你确定要实现'Storage'类吗?使用 Illuminate\Support\Facades\Storage;
  • 是:使用 Illuminate\Support\Facades\Storage;已添加
猜你喜欢
  • 2021-02-12
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多