质量必须在0到100之间 - 干预Laravel 5.x

7
我正在使用intervention/image 2.3。当我尝试上传图片时,出现以下错误:

AbstractEncoder.php文件的InvalidArgumentException,行号为212

质量必须在0到100之间

以下是相关代码:

$file = Input::file('image');
$filename = time() . '.' . $file->getClientOriginalExtension();
Image::make($file)->resize(50, 50)->save(storage_path() . DIRECTORY_SEPARATOR . 'uploads', $filename);

任何一条指导都会对我很有帮助。根据 URL,我尝试传递第二个可选参数即质量但未成功。我甚至尝试了

Image::make($file)->resize(50, 50)->save(storage_path() . DIRECTORY_SEPARATOR . 'uploads'. $filename, 50);

3
哦!我遇到了错误。我的代码里有逗号。在 $filename 前面的代码是 Image::make($file)->resize(50, 50)->save(storage_path() . DIRECTORY_SEPARATOR . 'uploads', $filename);。应该改成用点号 .。请为我翻译这段内容。 - Vineet
4个回答

2

我曾经遇到过这个问题,我通过以下代码解决了它:

$file = $request->file('img_profile');
$file_name = date('Ymd-his').'.png';
$destinationPath = 'uploads/images/';
$new_img = Image::make($file->getRealPath())->resize(400, 300);

// save file with medium quality
$new_img->save($destinationPath . $file_name, 80);

查看http://image.intervention.io/api/save获取更多信息...


0

save() 方法的第一个参数应该是路径和文件名,第二个参数是质量(0-100),你在路径和 $filename 之间使用了 "," 而不是 "."。请尝试这样做:->save('your/path/'.$filename); 或者 ->save('your/path/'.$filename, 80);


0
问题在于您正在将文件名传递到质量参数的位置。
可能您正在从$file->move()方法中重写基本内容? 只需用一个额外的DIRECTORY_SEPARATOR替换逗号即可:
Image::make($file)->resize(50, 50)->save(storage_path() . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . $filename);

0

我曾经遇到过这个问题,可以像这样使用save()函数

$image = $request->file('img_src');
$filename = time().'.'.$image->getClientOriginalExtension();
$image_resize = Image::make($image->getRealPath());
$image_resize->fit(250);
$image_resize->save(public_path('/imgs/'.$filename));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接