4

Я установил intervention в Laravel 5.1, и я использую загрузку изображения и размер что-то вроде этого:Image Validation в Laravel 5 Intervention

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

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

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

+1

Вы можете принять смотреть на этот https://laracasts.com/discuss/channels/general-discussion/validating-an-image-laravel-5 и этот http://tutsnare.com/upload-files-in-laravel/, насколько я знаю не является подтверждением содержания во вмешательстве. –

+0

Спасибо @maytham Ваш комментарий определенно помог мне в том, чтобы указывать в правильном направлении. Я опубликовал свое решение, которое я использую сейчас. :) – Neel

+0

Добро пожаловать, вот мой голос. –

ответ

10

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

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

Validator Проверка перед обработкой Intervention 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'); 
    }; 
}); 

Надеется, что это помогает.

+0

где это '' фото '' происходит из '$ file = Input :: file ('photo');'? – Chriz74

+1

@ Chriz74, который является именем ввода в форме –

+2

, почему бы не использовать $ file = $ request-> photo; ? – Chriz74

0

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

так:

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

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

1

Просто интегрировать это получить Validation

$this->validate($request, ['file' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',]); 
Смежные вопросы