我正在尝试将图像上传到laravel的/ storage目录。我遇到了错误
fopen(C:\ Temp \ AppName \ public):无法打开流:权限被拒绝
这是我用来上传图片的代码
public function SaveImage($image){
$fileName = time() . '.' . $image->getClientOriginalExtension();
$path =$image->storeAs('images/users', $fileName);
return $fileName;
}
我已经授予IUSR和IIS_USER的权限,所以我不明白这是一个权限错误。 在窗口10(IIS 10)上图像上传正常,在窗口7(IIS 7)上由于权限被拒绝而失败。
我使用laravel 5.7和php 7.2.11。
感谢您的帮助,谢谢。
答案 0 :(得分:1)
我遇到了这个问题。首先,我从项目目录运行php artisan cache:clear
,然后运行icacls "app/storage" /grant Users:F
,最后运行php artisan dump-autoload
,它运行正常。我认为这对您也有帮助!
答案 1 :(得分:0)
我也有这个问题。确保将php.ini
文件更改为
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
说明: php.ini文件的默认设置为
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
这就是为什么您不能上传大于2 MB的图像。
致谢
答案 2 :(得分:0)
我遇到了同样的错误,但事实证明问题出在图像尺寸上。 PHP对文件上传大小有默认限制,并且在此特定的laravel函数“文件权限”错误中显示,而不是文件太大或其他内容。先尝试较小的图像(<1MB)。