Laravel проверка входных данных нескольких изображений из массива HTML-форм

У меня есть следующие поля в форме HTMl,

<div class="col-md-6"><input type="file" name="images[]"></div>
<div class="col-md-6"><input type="file" name="images[]"></div>
<div class="col-md-6"><input type="file" name="images[]"></div>
<div class="col-md-6"><input type="file" name="images[]"></div>
<div class="col-md-6"><input type="file" name="images[]"></div>
<div class="col-md-6"><input type="file" name="images[]"></div>

Когда я отправляю форму, я получаю массив images [] в PHP. Я использую фреймворк Laravel для проверки формы. Я использую валидатор и правила. Но я хочу применить правило требуемого и максимального размера к каждому изображению из приведенного выше массива. Спасибо.


person Gaurav Deshpande    schedule 22.09.2015    source источник
comment
проверьте этот ответ http://stackoverflow.com/questions/31534413/image-array-validation-in-laravel-5/39346535#39346535   -  person Badmus Taofeeq    schedule 06.09.2016


Ответы (1)


Вот пример кода моей проверки изображений:

// Handle upload(s) with input name "files[]" (array) or "files" (single file upload)

if (Input::hasFile('files')) {
    $all_uploads = Input::file('files');

    // Make sure it really is an array
    if (!is_array($all_uploads)) {
        $all_uploads = array($all_uploads);
    }

    $error_messages = array();

    // Loop through all uploaded files
    foreach ($all_uploads as $upload) {
        // Ignore array member if it's not an UploadedFile object, just to be extra safe
        if (!is_a($upload, 'Symfony\Component\HttpFoundation\File\UploadedFile')) {
        continue;
        }

         $validator = Validator::make(
            array('file' => $upload),
            array('file' => 'required|mimes:jpeg,png|image|max:1000')
         );

        if ($validator->passes()) {
            // Do something
        } else {
            // Collect error messages
            $error_messages[] = 'File "' . $upload->getClientOriginalName() . '":' . $validator->messages()->first('file');
        }
     }

    // Redirect, return JSON, whatever...
    return $error_messages;
} else {
    // No files have been uploaded
}
person Ali Mehdi    schedule 22.09.2015