У меня есть следующие поля в форме 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>
Когда я отправляю форму, я получаю массив изображений [] в PHP. Я использую Laravel Framework для проверки формы. Я использовал валидатор и правила. Но я хочу применить правило обязательного и максимального размера для каждого изображения из вышеуказанного массива. Благодарю.
Вот пример кода моей проверки изображений:
// 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
}
Других решений пока нет …