Dans Laravel 5.3, nous avons une nouvelle option de validation : les dimensions de l’image pour les téléchargements d’images. La règle de validation s’appelle dimensions
et vous pouvez lui transmettre les paramètres suivants :
min_width
: Les images plus étroites que cette largeur de pixel seront rejetéesmax_width
: Les images plus larges que cette largeur de pixel seront rejetéesmin_height
: Les images plus courtes que cette hauteur de pixel seront rejetéesmax_height
: Les images plus hautes que cette hauteur de pixel seront rejetéeswidth
: Les images qui ne correspondent pas exactement à cette largeur de pixel seront rejetéesheight
: Les images qui ne correspondent pas exactement à cette hauteur de pixel seront rejetéesratio
: Les images qui ne correspondent pas exactement à ce rapport (largeur/hauteur, exprimé en “largeur/hauteur”) seront rejetées
Vous pouvez combiner toutes les règles qui ont du sens ensemble. Jetons un coup d’œil à quelques exemples. Tout d’abord, configurons notre installation de base.
// routes file
Route::get("https://mattstauffer.com/", function () {
return view('form');
});
Route::post("https://mattstauffer.com/", 'ImageController@postImage');
<!--form.blade.php-->
<form method="POST" enctype="multipart/form-data">
<input type="file" name="avatar">
<input type="submit">
</form>
Maintenant, faisons notre ImageController
et jetez un oeil à quelques exemples de validations.
// ImageController
public function postImage(Request $request)
{
$this->validate($request, [
'avatar' => 'dimensions:min_width=250,min_height=500'
]);
// or...
$this->validate($request, [
'avatar' => 'dimensions:min_width=500,max_width=1500'
]);
// or...
$this->validate($request, [
'avatar' => 'dimensions:width=100,height=100'
]);
// or...
// Ensures that the width of the image is 1.5x the height
$this->validate($request, [
'avatar' => 'dimensions:ratio=3/2'
]);
}
C’est ça! Une chose de moins que vous devez gérer vous-même dans votre propre code.