Laravel 8用Image Intervention调整图片报Quality must range from 0 to 100错误
报错根因
你触发该报错的核心原因是调用 Intervention Image 扩展的 save() 方法时传参规则错误:
save()方法第一个参数要求传入包含文件名的完整保存路径- 第二个可选参数为0~100区间的图片质量数值
- 你当前的写法将保存目录和文件名拆成两个参数传入,相当于把文件名当做了第二个质量参数,系统转换数值时不符合0~100的取值要求,因此抛出错误。
修正后的代码
$brand_image = $request->file('brand_image'); $img_name = time() . $brand_image->getClientOriginalName(); // 拼接完整的保存路径(这里用public_path默认存到public目录下,可根据自己的存储磁盘调整) $full_save_path = public_path('images/brands/' . $img_name); $img = Image::make($brand_image)->resize(30, 20); // 传入完整路径,第二个参数为可选的质量参数,可在0~100之间自定义 $img->save($full_save_path, 80); // 如果不需要自定义质量,也可以直接写 $img->save($full_save_path);
注意事项
- 请提前创建
public/images/brands目录并赋予读写权限,避免出现写入失败的问题 - 如果你的存储路径不是public目录下,可根据自身项目的存储配置调整路径拼接逻辑
内容的提问来源于stack exchange,提问作者Black core
相关产品推荐
相关产品推荐

