Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте, Уважаемые форумчане.
Вынужден обратиться к Вам за помощью .
Нужно проверять, является ли файл изображением (файл уже на сервере).
Пробую в контроллере так:
$rule = [
'image' => 'image|mimes:jpeg,jpg,png,gif|required'
];
$image = '/var/www/devgl/data/www/gallery/public/gallery/uploads/albumName/P1040463.JPG';
$validator = Validator::make(['image' => $image], $rule);
if($validator->fails())
{
echo "НЕ КАРТИНКА!";
}
else
{
echo "ОНА САМАЯ!";
}
При любом варианте $validator->fails() возвращает true (echo "НЕ КАРТИНКА!";). Если вызвать File::mimeType($image), то результат "image/jpeg".
Что я делаю не так? Подскажите, пожалуйста.
Laravel 5.4, PHP 7.1.3
Не в сети
error для начала уточните от валидатора
Не в сети
error для начала уточните от валидатора
Добавил:
$messages = [
'image' => 'должно быть изображением.',
'mimes' => 'расширение должно быть jpeg,jpg,png,gif.',
'required' => 'поле обязательно.',
];
При выводе:
print_r($validator->errors());
Результат:
Illuminate\Support\MessageBag Object
(
[messages:protected] => Array
(
[image] => Array
(
[0] => должно быть изображением.
[1] => расширение должно быть jpeg,jpg,png,gif.
)
)
[format:protected] => :message
)
Не в сети
$image - это строка просто, а не сам файл. надо бы файл давать валидатору
https://laravel.com/docs/5.4/filesystem … ving-files
Изменено web_coder (05.05.2017 16:22:04)
Не в сети
$image - это строка просто, а не сам файл. надо бы файл давать валидатору
Понял, спасибо большое.
Не в сети
Страницы 1