无法从 Laravel 5.4 中的存储文件夹下载文件

Tow*_*sal 4 laravel-5

我已将文件存储在 storage/app/files 文件夹中$path=$request->file->store('files'),并将路径“files/LKaOlKhE5uITzAbRj5PkkNunWldmUTm3tOWPfLxO.doc”保存在表的列名中file

我还通过php artisan storage:link.

在我的视图刀片文件中,我把这个

<a href="@if(count($personal_information)) {{asset('storage/'.$personal_information->file)}} @endif" download>Download File</a>
Run Code Online (Sandbox Code Playgroud)

下载文件的链接是 http://localhost:8000/storage/files/LKaOlKhE5uITzAbRj5PkkNunWldmUTm3tOWPfLxO.doc

但我得到了错误

RouteCollection.php 第 161 行中的 NotFoundHttpException

如果我/app/storage它之后添加它会给出相同的错误。如何从我的storage/app/files文件夹下载文件?

Ana*_*mov 11

问题是默认情况下存储文件夹不可公开访问。存储文件夹很可能用于保存一些其他用户无法访问的私人文件,例如用户图片。如果您将它们移动到公用文件夹,则每个人都可以访问文件。我在 Laravel 5.4 上遇到了类似的问题,我通过编写下载文件的路径做了一些小改动。

Route::get('files/{file_name}', function($file_name = null)
{
    $path = storage_path().'/'.'app'.'/files/'.$file_name;
    if (file_exists($path)) {
        return Response::download($path);
    }
});
Run Code Online (Sandbox Code Playgroud)

或者您可以将您的文件保存到公共文件夹中。