在我的 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"]
在路径中找不到文件:storage/uploads[“file.jpg”]
[]
这表明您在 path
中传递了数组,并且在 uploads后也丢失了
/
你的路径应该如下所示
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]
这样访问。
你应该做的是这样的:
public function getdata(Request $request)
{
return Storage::download("uploads/" . $image_name['file_name']);
}
参考: https://laravel.com/docs/8.x/filesystem#downloading-files
你可以这样做
return Storage::disk('public')->download('uploads/'. $image_name);
经过多次尝试,该方法仅在浏览器中有效。在邮递员中,不起作用。
return Storage::disk('public')->download('uploads/'. $image_name);