我有一个用户可以提交图像的表单。我不想将其存储在我的服务器上,以防它是病毒,而是将其存储到 Amazon S3。
我的问题是我需要验证图像是否小于特定尺寸。 我怎样才能在 Laravel 5.4 中做到这一点?
我的 Controller
$validator = \Validator::make($request->all(),[
"logo" => "dimensions:max_width:300,max_height:200",
]);
if($validator->fails()){
return \Redirect::back()->withInput()->withErrors( $validator );
}
验证失败并重定向回来,并显示“ Logo 的图像尺寸无效。”尽管我上传的图像是 100x100。 验证的正确方法是什么,或者无需保存文件的替代解决方案是什么?
最佳答案
在 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())
关于php - 拉拉维尔 5.4 : How do I validate an image size?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51334333/