我在显示公用文件夹中上传的文件时遇到问题。每次尝试从公用文件夹加载文件时,我总是遇到 404 错误。
文件上传的所有测试都顺利通过,文件可以加载,文件存在于数据库和公用文件夹中,符号链接(symbolic link)已创建,但我无法显示公用文件夹中的内容。
代码的主要部分:
上传 Controller .php
$path = $request->file( 'userfile' )->store( 'logos', 'public' );
在此之后的文件夹中:
/storage/app/public/logos/file.ext
在 Blade 模板中使用文件:
<img src="{{ asset( $model->image_path ) }}" />
浏览器的响应 404 - 找不到页面
有关服务器文件夹的更多信息:
/public/storage - this is the symlink to the public folder 777 permission
/storage/app/public - the storage public folder 775 permission
/storage/app/public/logos - the logo folder 755 permission
/storage/app/public/logos/file.ext - the file 644 permission
我尝试将文件权限更改为 775,但始终是 404
我该如何解决这个问题? 谢谢
[编辑] 我发现与可以看到公共(public)文件的另一台服务器不同。当 ls -l </p> 时,该服务器中的符号链接(symbolic link)具有绿色背景
最佳答案
这个问题的解决方案是在 uploaderController.php 中,当您保存上传文件的路径时,您必须在“storage”文件夹之前添加。
上传 Controller .php
$path = $request->file( 'userfile' )->store( 'logos', 'public' );
$data = [ 'image_path'=>"storage/{$path}" ];
$model->update( $data );
关于linux - 公开上传的文件不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53833685/