Laravel 5.4: 如何验证图像大小?
Laravel 5.4: How do I validate an image size?
我有一个用户可以提交图片的表单。我不想将它存储在我的服务器上以防它是病毒,而是将它存储到 Amazon S3。
我的问题是我需要验证图像是否小于特定尺寸。
我怎样才能在 Laravel 5.4 中做到这一点?
我的控制器
$validator = \Validator::make($request->all(),[
"logo" => "dimensions:max_width:300,max_height:200",
]);
if($validator->fails()){
return \Redirect::back()->withInput()->withErrors( $validator );
}
虽然我上传的图片是 100x100,但验证失败并以 "The logo has invalid image dimensions." 重定向回来。
无需保存文件的正确验证方法是什么或替代解决方案是什么?
在 max_width
和 max_height
中使用等号 (=) 而不是冒号 (:):
"logo" => "dimensions:max_width=300,max_height=200",
Image dimension validation rules in Laravel
如果没有解决,请确保您的表单具有 enctype="multipart/form-data"
(如 @F.Igor 评论中所述):
<form method="POST" enctype="multipart/form-data">
<input type="file" name="logo">
<input type="submit">
</form>
如果您已经在使用它,请检查(在验证之前)您是否正在根据您的请求获取图像以及使用什么名称:
dd($request->all())
这是一个验证示例:
- 图片格式
- 最大文件大小
- 维度
$request->validate([
'avatar' => ['image','mimes:jpg,png,jpeg,gif','max:200','dimensions:min_width=100,min_height=100,max_width500,max_height=500'],
]);
max:200
(最大大小限制为 200kb)
我有一个用户可以提交图片的表单。我不想将它存储在我的服务器上以防它是病毒,而是将它存储到 Amazon S3。
我的问题是我需要验证图像是否小于特定尺寸。 我怎样才能在 Laravel 5.4 中做到这一点?
我的控制器
$validator = \Validator::make($request->all(),[
"logo" => "dimensions:max_width:300,max_height:200",
]);
if($validator->fails()){
return \Redirect::back()->withInput()->withErrors( $validator );
}
虽然我上传的图片是 100x100,但验证失败并以 "The logo has invalid image dimensions." 重定向回来。 无需保存文件的正确验证方法是什么或替代解决方案是什么?
在 max_width
和 max_height
中使用等号 (=) 而不是冒号 (:):
"logo" => "dimensions:max_width=300,max_height=200",
Image dimension validation rules in Laravel
如果没有解决,请确保您的表单具有 enctype="multipart/form-data"
(如 @F.Igor 评论中所述):
<form method="POST" enctype="multipart/form-data">
<input type="file" name="logo">
<input type="submit">
</form>
如果您已经在使用它,请检查(在验证之前)您是否正在根据您的请求获取图像以及使用什么名称:
dd($request->all())
这是一个验证示例:
- 图片格式
- 最大文件大小
- 维度
$request->validate([
'avatar' => ['image','mimes:jpg,png,jpeg,gif','max:200','dimensions:min_width=100,min_height=100,max_width500,max_height=500'],
]);
max:200
(最大大小限制为 200kb)