laravel - Laravel 5.4:无法打开流:权限被拒绝
问题描述
我正在尝试移动一个将上传到公共/文件夹名的文件,但我收到了无法打开流的错误:权限被拒绝。请告诉我如何解决这个错误
文件上传代码
if(!empty($rep))
{
foreach($rep as $rep)
{
$filename = $rep->getClientOriginalName();
$fileSize = $rep->getClientSize();
$rep->storeAs('public/reportAttachment',$filename);
$reportId = Report::where('reportId',$request->reportId)->first();
$reportA = new ReportAttachment;
$reportA->reportAttachmentFile = $filename;
$reportA->report_id = $reportId->id;
$reportA->save();
}
}
解决方案
检查目录“storage”、“public”和“reportAttachment”的权限。如果未设置为 777,请将其 chmod 设置为 777。
通过 ssh 在存储所在的父目录中键入
ls -ld
对于存储目录,你应该有
drwxrwxrwx
如果不是,将其更改为 777
sudo chmod -R storage
或更具体
sudo chmod 777 -R storage/public
如果这不能解决问题,则可能缺少目录“reportAttachment”
如果这不能解决问题,请检查存储中的公共目录是否正确链接
如果这不能解决问题,请检查文件是否完全保存。
推荐阅读
- php - PHPUnit 测试实际上运行代码而不是仅仅测试
- python - Python如何捕获由数字后跟多个测量单位中的任何一个组成的模式
- visual-studio - 在 dev 中设置具有项目依赖项的 .net5 库项目的正确方法,但在发布时将 nuget 包分开
- php - 导入大数据时哪种方法更实用或更正统?
- sql - Iteratively get the max of a data frame column, add one and repeat for all rows in r
- r - 从数据帧列表创建时间序列和测试/训练拆分
- argo-workflows - 如何在 Argo Workflows pod 中显示每一行的时间戳?
- jquery - 使用 J Query 制作的 SharePoint 2013 超链接在过滤后停止工作
- swift - 找不到 Swift 编译器标识
- sass - 如何在 Sass 中使用带有 @use 的绝对 URL?