Php 未找到Laravel 5.4存储文件
我使用的是laravel 5.4。我在storage/app/public/documents文件夹中上传了一些文档文件,比如Php 未找到Laravel 5.4存储文件,php,laravel,laravel-5.3,Php,Laravel,Laravel 5.3,我使用的是laravel 5.4。我在storage/app/public/documents文件夹中上传了一些文档文件,比如 $request->paper_file->store('documents'); 我的文件上传成功 在文件系统中,默认存储是公共的 公共配置就像 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_UR
$request->paper_file->store('documents');
我的文件上传成功 在文件系统中,默认存储是公共的 公共配置就像
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',],
但当我点击/storage/documents/hqlgiginvh8bmrrpvdz9afgbhlmc7g7bhzsx4u.pdf时
上面说找不到404。如何解决此问题。默认情况下,Laravel将文件放在
存储/app/public
目录中,该目录无法从外部web访问。因此,您必须在该目录和公共目录之间创建一个符号链接:
storage/app/public->public/storage
您可以通过执行laravel^5.8中的php artisan storage:link
命令()。:
- 确保使用
运行命令public/storage
以链接php-artisan-storage:link
storage/app/public
//此返回类似于“public/documents/file.ext”的内容
$path=$request->paper_file->store('public/documents');
//此返回类似“storage/documents/file.ext”的内容
$publicPath=\Storage::url($path));
//这会返回类似“/storage/documents/file.ext”的值
$url=资产($publicPath);
运行php artisan storage:link
后,它会在公用文件夹中创建一个符号链接,您可以像这样检索记录
。您应该包括公共
目录此问题发生在我将项目移动到其他文件夹后。
如果已生成存储链接,请尝试删除公用/存储文件夹,然后再次运行:
php artisan storage:link
使用Laravel的存储功能上载图像时,图像存储在存储文件夹中。 例如: 存储/app/public/avatars/file1.png 但当您想通过URL访问它时,您应该像这样访问它: 存储/avatars/file1.png
使用Laravel 7.x,它对我很有效。如果您来自Laravel 8.x,并且确实运行了命令
php artisan storage:link
(创建符号链接),但是您的代码不起作用,即您尝试加载的文件没有显示,那么您就像我一样
刚才提到,此解决方案对我的laravel 8x项目很有帮助。我没有使用asset helper功能从我的刀片文件中添加“存储”路径名,因此我的图像路径没有输出任何内容,而是在我键入类似于soasset('storage/uploads/pic1.png)
的路径名时输出的
我想这可能会对某些人有所帮助。您看到文件系统中的文件了吗?文档显示它正在被使用,如$request->file('paper')->store('documents')
,但我不确定您的paper\u文件
位是什么。我的文件上载成功。文件名为paper_file.Where ishqlgigenvvh8bmrrrpvdz9afgbhlmc7g7bhzsx4u
来自何处?这是laravel生成的动态文件名。你能添加处理上传过程的方法吗?执行此命令时,我出现了错误,如“public/storage”目录已经存在。
我只是在重新执行命令之前删除了public/storage中的空存储文件夹。删除public/storage是关键
php artisan storage:link