找不到Laravel 5.4存储文件

Ift*_*lam 6 php laravel laravel-5.3

我正在使用laravel 5.4.我在storage/app/public/documents文件夹中上传了一些文件文件

$request->paper_file->store('documents');
Run Code Online (Sandbox Code Playgroud)

和我的文件上传成功.

在文件系统默认存储是公共和公共conf就像

'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',],
Run Code Online (Sandbox Code Playgroud)

但当我点击/storage/documents/hQqlgifnVVH8bmrRPVdZ9aFGbhLmcc7g7bHZSX4u.pdf时,它说找不到404.如何解决这个问题.

Jeb*_*iah 22

默认情况下,Laravel将文件放在storage/app/public目录中,该目录无法从外部Web访问.因此,您必须在该目录与公共目录之间创建一个符号链接:

storage/app/public -> public/storage

您可以通过执行php artisan storage:link命令(docs)来实现.

  • 执行此命令时,出现类似“公共/存储”目录已存在的错误。我只是在重新执行命令之前删除了公共目录中的空存储文件夹。 (2认同)

小智 5

将项目移动到不同的文件夹后,我遇到了这个问题。如果您已经生成了存储链接,请尝试删除public/storage 文件夹并再次运行:

php artisan storage:link
Run Code Online (Sandbox Code Playgroud)

  • 删除公共/存储是关键 (2认同)

小智 5

当您使用 Laravel 的存储功能上传图像时,它将存储在存储文件夹中。例如:storage/app/public/avatars/file1.png

但是当你想通过 URL 访问它时,你应该像这样访问它:

存储/头像/file1.png

它对我有用,使用 Laravel 7.x。