Проверка изображений в Laravel 5 вмешательства

Я установил вмешательства в Laravel 5.1, и я использую загрузку изображения и изменение размера примерно так:

Route::post('/upload', function()
{
Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');
});

чего я не понимаю, так это как вмешательство обрабатывает проверку загруженного изображения? Я имею в виду, вмешательство уже имеет встроенную проверку проверки изображения в нем или что-то мне нужно вручную добавить с помощью Laravel Validation для проверки форматов файлов, размеров файлов и т. д..? Я прочитал документы вмешательства и я не смог найти информацию о том, как работает проверка изображений при использовании вмешательства с laravel.

может кто-нибудь точка меня в правильном направлении пожалуйста..

3 ответов


спасибо @maytham за его комментарии, которые указали мне в правильном направлении.

Я обнаружил, что вмешательство изображения не делает никакой проверки само по себе. Все проверки изображения должны быть сделаны до того, как его передали вмешательства изображения для загрузки. Благодаря встроенным валидаторам Laravel, таким как image и mime типы, которые делают проверку изображения очень простой. Это то, что у меня есть сейчас, где я сначала проверяю ввод файла перед его передачей за вмешательства изображения.

Проверка Валидатора Перед Обработкой Вмешательства Image класс:

 Route::post('/upload', function()
 {
    $postData = $request->only('file');
    $file = $postData['file'];

    // Build the input for validation
    $fileArray = array('image' => $file);

    // Tell the validator that this file should be an image
    $rules = array(
      'image' => 'mimes:jpeg,jpg,png,gif|required|max:10000' // max 10000kb
    );

    // Now pass the input and rules into the validator
    $validator = Validator::make($fileArray, $rules);

    // Check to see if validation fails or passes
    if ($validator->fails())
    {
          // Redirect or return json to frontend with a helpful message to inform the user 
          // that the provided file was not an adequate type
          return response()->json(['error' => $validator->errors()->getMessages()], 400);
    } else
    {
        // Store the File Now
        // read image from temporary file
        Image::make($file)->resize(300, 200)->save('foo.jpg');
    };
 });

надеюсь, что это помогает.


просто интегрируйте это, чтобы получить проверку

$this->validate($request, ['file' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',]);

У меня есть форма custum, и этот вариант не работает. Поэтому я использовал проверку regexp

такой:

  client_photo' => 'required|regex:/^data:image/'

может быть это будет полезно для кого-то