Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5.4: How do I validate an image size?

I have a form where a user can submit an image. I don't want to store it on my server in case it's a virus but instead store it to Amazon S3.

My issue is that I need to validate if the image is less than a specific dimension. How can I do that in Laravel 5.4?

My controller

 $validator = \Validator::make($request->all(),[
    "logo"      => "dimensions:max_width:300,max_height:200",
 ]);

 if($validator->fails()){
    return \Redirect::back()->withInput()->withErrors( $validator );
 }

The validation fails and redirects back with "The logo has invalid image dimensions." eventhough the image i'm uploading is 100x100. What's the correct way to validate or what are alternate solutions without having to save the file?

like image 604
MalcolmInTheCenter Avatar asked Jul 14 '18 00:07

MalcolmInTheCenter


1 Answers

use equals sign (=) rather than colon (:) with max_width & max_height :

"logo"  => "dimensions:max_width=300,max_height=200",

Image dimension validation rules in Laravel


If it doesn't solve, make sure that your form has enctype="multipart/form-data" (as mentioned in comment by @F.Igor):

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="logo">
    <input type="submit">
</form>

If you already using this, then check (before validation) whether you are getting image with your request and with what name:

dd($request->all())
like image 133
TalESid Avatar answered Oct 15 '22 16:10

TalESid