Laravel 5.4:如何验证图像大小?

alt*_*ids 3 php validation laravel laravel-5.4

我有一个用户可以提交图像的表单.我不想将它存储在我的服务器上,以防它是病毒,而是将其存储到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 );
 }
Run Code Online (Sandbox Code Playgroud)

验证失败并重定向回"标识具有无效的图像尺寸".虽然我上传的图片是100x100.什么是正确的验证方法或什么是备用解决方案而无需保存文件?

Tal*_*iqi 8

使用等号(=),而不是冒号(:)与max_width&max_height:

"logo"  => "dimensions:max_width=300,max_height=200",
Run Code Online (Sandbox Code Playgroud)

Laravel中的图像尺寸验证规则


如果没有解决,请确保您的表格已经存在enctype="multipart/form-data"(如@ F.Igor的评论中所述):

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="logo">
    <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

如果您已经使用过此功能,请检查(验证前)您是否收到了包含您的请求的图片以及名称:

dd($request->all())
Run Code Online (Sandbox Code Playgroud)