【发布时间】:2018-05-24 07:26:43
【问题描述】:
我使用的是 Laravel 5.6,filesystems.php 配置默认。
上传文件后,我在我的数据库中记录了路径列,其中记录了路径,例如 - posts/p4NbvgcxHFcT10TwbS2UUJrajifPcqpN3i7iSyyk.png
符号链接已创建,文件存储在公共目录中。
$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 操作系统上运行的应用程序
【问题讨论】:
-
什么返回
$file->path属性?尝试将其转储到 downloadFile 方法中 -
{{ asset('/storage/'.$file->path) }}和asset('storage/'.$file->path)可能不一样 -
dd(asset('/storage/'.$file->path),asset('storage/'.$file->path));结果是一样的。 $file->path 返回路径,如posts/p4NbvgcxHFcT10TwbS2UUJrajifPcqpN3i7iSyyk.png
标签: php laravel download storage