Laravel 8图像干预:Can';t将图像数据写入路径
这就是我尝试使用Laravel 8图像干预:Can';t将图像数据写入路径,laravel,image,resize,intervention,Laravel,Image,Resize,Intervention,这就是我尝试使用图像干预软件包的方式: public function saveImage(string $path, $image) { $file = $image; $filename = Str::random(20) . $file->getClientOriginalName(); $imgResize = Image::make($image); $imgResize->heighten(300);
图像干预
软件包的方式:
public function saveImage(string $path, $image)
{
$file = $image;
$filename = Str::random(20) . $file->getClientOriginalName();
$imgResize = Image::make($image);
$imgResize->heighten(300);
//dd(is_writable(storage_path('app/public/'.$path)));
$imgResize->save(storage_path('app/public/'.$path));
return $destination_path = Storage::disk('local')->put('/'.$path, $image);
}
在不使用图像干预的情况下成功保存图像。当我尝试save()
时,它会向我抛出以下错误:
干预\Image\Exception\NotWritableException:无法将图像数据写入路径
我已经更改了文件夹的权限,但仍然无法工作
你知道这是什么原因吗
编辑:
我之前做过php artisan storage:link
,这就是为什么它不使用图像干预就可以工作的原因
我做了dd(存储路径('app/public/'.$path))代码>这将导致在同一文件夹中成功保存正常图像
我还检查了是否可写
,结果是true
出于测试目的,我已经将权限更改为777
我不知道还需要做什么才能使这项工作正常。在save()
方法中添加文件名
$imgResize->save(存储路径('app/public/'.$path./'.$filename));
这里有一些来自
//打开图像文件并调整其大小
$img=Image::make('public/foo.jpg')->调整大小(300200)
//将文件另存为中等质量的jpg
$img->save('public/bar.jpg',60)
//以默认质量保存与jpg相同的文件
$img->save('public/baz.jpg')
//以png格式保存文件
$img->save('public/bar.png')
//保存由第三个参数定义的图像jpg格式
$img->save('public/foo',80,'jpg')
$path中有什么?文件夹的名称:review_images
如果我试图将其保存到其他位置,如:$imgResize->save(存储路径('app/public/')。$filename))代码>它可以工作。如果我试图将它保存到$path
中,它将再次抛出相同的错误。问题是,我在一个服务中使用了这个方法,该服务适用于许多其他服务/控制器,我动态地获得了$path
,所以我不能这样做:$imgResize->save(存储路径('app/public/folder\u name')谢谢兄弟。今天你是我的救世主:P@MarinarioAgalliu不客气,有时候当你对一个问题想得太多的时候,你会忘记检查一些简单的东西:)是的,兄弟,你知道有时候你会更关注问题而不是解决方案。快乐编码!