Метод file
Метод file класса Rule применяется в правилах валидации для проверки загруженных файлов. Он проверяет, что переданное значение является успешно загруженным файлом. Первым параметром метод принимает массив правил для файла, которые будут применены в дополнение к базовой проверке.
Синтаксис
<?php
use Illuminate\Validation\Rule;
$rules = [
'photo' => ['required', Rule::file($additionalRules)]
];
?>
Пример
Давайте проверим, что загружаемый файл является изображением с размерами не более 2 мегабайт:
<?php
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Validator;
$data = [
'photo' => $uploadedFile
];
$rules = [
'photo' => ['required', Rule::file(['image', 'max:2048'])]
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
echo "Validation failed";
} else {
echo "File is valid";
}
?>
Результат выполнения кода:
"File is valid"
Пример
Давайте проверим, что файл имеет допустимое расширение и минимальный размер:
<?php
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Validator;
$data = [
'document' => $uploadedFile
];
$rules = [
'document' => ['required', Rule::file(['mimes:pdf,doc,docx', 'min:100'])]
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
echo "Validation failed";
} else {
echo "Document is valid";
}
?>
Результат выполнения кода:
"Document is valid"
Пример
Давайте проверим, что файл является изображением с определенными пропорциями:
<?php
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Validator;
$data = [
'avatar' => $uploadedFile
];
$rules = [
'avatar' => ['required', Rule::file(['image', 'dimensions:min_width=100,min_height=100'])]
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
echo "Validation failed";
} else {
echo "Avatar is valid";
}
?>
Результат выполнения кода:
"Avatar is valid"