В Laravel 5.3 появилась новая возможность проверки ввода: размер загружаемого изображения. Правило проверки называется dimensions, оно принимает следующие параметры:
- min_width — минимальная ширина (в пикселях)
- max_width — максимальная ширина
- min_height — минимальная высота
- max_height — максимальная высота
- width — требуемая ширина (должна быть равной этому значению)
- height — требуемая высота
- ratio — требуемое соотношение сторон (указывается в виде «ширина/высота»)
Вы можете комбинировать правила, работающие вместе. Давайте рассмотрим несколько примеров. Сначала зададим нашу основу.
PHP
// routes file
Route::get('/', function () {
return view('form');
});
Route::post('/', 'ImageController@postImage');
xml<!--form.blade.php--> <form method="POST" enctype="multipart/form-data"> <input type="file" name="avatar"> <input type="submit"> </form>
Теперь создадим наш PHPImageController
и несколько правил проверки.
PHP
// ImageController
public function postImage(Request $request)
{
$this->validate($request, [
'avatar' => 'dimensions:min_width=250,min_height=500'
]);
// или...
$this->validate($request, [
'avatar' => 'dimensions:min_width=500,max_width=1500'
]);
// или...
$this->validate($request, [
'avatar' => 'dimensions:width=100,height=100'
]);
// или...
// Проверка, что ширина изображения равна 1,5 высоты
$this->validate($request, [
'avatar' => 'dimensions:ratio=3/2'
]);
}
Вот и всё! Вещей, которые надо делать в коде самому, стало ещё на одну меньше.