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