Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Валидация файла, что он изображение » 05.05.2017 16:32:08

web_coder пишет:

$image - это строка просто, а не сам файл. надо бы файл давать валидатору

https://laravel.com/docs/5.4/filesystem … ving-files

Понял, спасибо большое.

#2 Re: Laravel 5.x » Валидация файла, что он изображение » 05.05.2017 16:17:45

web_coder пишет:

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
)

#3 Laravel 5.x » Валидация файла, что он изображение » 05.05.2017 15:37:09

WebCode
Ответов: 4

Здравствуйте, Уважаемые форумчане.

Вынужден обратиться к Вам за помощью sad.

Нужно проверять, является ли файл изображением (файл уже на сервере).

Пробую в контроллере так:

        $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".

Что я делаю не так? sad Подскажите, пожалуйста.

Laravel 5.4, PHP 7.1.3

Подвал раздела