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

时间:2016-09-01 06:33:27

标签: php laravel-5 laravel-5.1 intervention

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

  

AbstractEncoder.php第212行中的InvalidArgumentException

     

质量必须介于0到100之间

以下是我的代码:

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

任何单一的指导都会对我有所帮助。 根据{{​​3}}网址,我尝试传递第二个可选参数,即质量但不起作用。我甚至尝试过

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

3 个答案:

答案 0 :(得分:1)

我遇到了这个问题,并通过以下代码解决了该问题:

$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了解更多...

答案 1 :(得分:0)

save()方法的第一个参数应为path + name,第二质量(0-100),您在路径和,之间使用“ $filename”而不是. 做类似的事情 ->save('your/path/'.$filename);->save('your/path/'.$filename, 80);

答案 2 :(得分: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));