Laravel 5.6 Storage::download 找不到文件
Laravel 5.6 Storage::download file not found
我正在使用 Laravel 5.6、filesystems.php 配置默认值。
上传文件时,我在我的数据库中记录了路径列,其中路径记录为 - posts/p4NbvgcxHFcT10TwbS2UUJrajifPcqpN3i7iSyyk.png
已创建符号链接并将文件存储在 public 目录中。
$path = $file->store('posts', 'public');
这个路径是数据库的记录器,如果我想显示例如图片,我可以通过以下方式访问它:
{{ asset('/storage/'.$file->path) }}
但是当我尝试强制下载时出现异常 - FileNotFoundException
在路径中找不到文件:
文件下载方式:
public function downloadFile($id){
$file = File::find($id);
//return Storage::download(storage_path()."/app/public/".$file->path, $file->original_name);
//also tried like this
return Storage::download(asset('storage/'.$file->path), $file->original_name);
}
应用 运行 Windows OS
试试这个:
return Storage::download(storage_path('app/public/'.$file->path), $file->original_name);
解决方案是:return Storage::disk('public')->download($file->path);
如果您使用asset()
,您将为所选目录调用文件。如果您可以调用存储文件夹中的文件,请使用 Storage::class
facade
我正在使用 Laravel 5.6、filesystems.php 配置默认值。
上传文件时,我在我的数据库中记录了路径列,其中路径记录为 - posts/p4NbvgcxHFcT10TwbS2UUJrajifPcqpN3i7iSyyk.png
已创建符号链接并将文件存储在 public 目录中。
$path = $file->store('posts', 'public');
这个路径是数据库的记录器,如果我想显示例如图片,我可以通过以下方式访问它:
{{ asset('/storage/'.$file->path) }}
但是当我尝试强制下载时出现异常 - FileNotFoundException 在路径中找不到文件:
文件下载方式:
public function downloadFile($id){
$file = File::find($id);
//return Storage::download(storage_path()."/app/public/".$file->path, $file->original_name);
//also tried like this
return Storage::download(asset('storage/'.$file->path), $file->original_name);
}
应用 运行 Windows OS
试试这个:
return Storage::download(storage_path('app/public/'.$file->path), $file->original_name);
解决方案是:return Storage::disk('public')->download($file->path);
如果您使用asset()
,您将为所选目录调用文件。如果您可以调用存储文件夹中的文件,请使用 Storage::class
facade