繁体   English   中英

未找到Laravel 5.6 Storage ::下载文件

[英]Laravel 5.6 Storage::download file not found

我正在使用Laravel 5.6,filesystems.php配置默认值。

当文件上传时,我在我的数据库中记录了路径列,其路径记录如下:posts / p4NbvgcxHFcT10TwbS2UUJrajifPcqpN3i7iSyyk.png

创建了符号链接,文件存储在公共目录中。

 $path = $file->store('posts', 'public');

此路径是DB的记录器,如果我想显示例如图像,我可以通过以下方式访问它:

{{ 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操作系统上运

解决方案是: return Storage::disk('public')->download($file->path);

尝试这个:

return Storage::download(storage_path('app/public/'.$file->path), $file->original_name);

如果使用asset() ,则会调用所选目录的文件。 如果可以在存储文件夹上调用文件,请使用Storage::class facade

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM