我正在使用laravel 5.3.30并使用图像干预帮助程序上传图像。我在Image.php第143行中收到错误" NotWritableException:无法将图像数据写入路径(/ home / test / Desktop / Laravel / blog / public / images /)"上传图片时我已为目录设置了适当的权限,但仍无法上传图片。
上传图片文件的代码:
if($request->hasFile('featured_image')){
$image = $request->file('featured_image');
$filename = time().'.'.$image->getClientOriginalExtension();
$location = public_path('images/', $filename);
Image::make($image)->resize(800,400)->save($location);
$post->image = $filename;
}
我已经在线查看了解决方案,但没有找到它。如果我做错了,请纠正我。提前谢谢。
答案 0 :(得分:3)
这是另一种方法。考虑存储在storage
目录中,而不是public
中。这是Laravel recommended way。
它可能存储在storage/app/public/images
目录中。然后使用php artisan storage:link
命令创建符号链接。
这种方式在存储时使用此路径:
$location = storage_path('app/images/', $filename);
创建符号链接后,您可以访问图像网址
http://your-site.app/storage/images/qwerqrewqerwq.jpg
答案 1 :(得分:0)
运行此命令以修复权限:
chmod -R 755 /home/Desktop/Laravel/blog/public
如果它不起作用,如果它是本地机器,请尝试777。