1

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 で images[] 配列を取得します。フォームの検証に Laravel フレームワークを使用しています。私はバリデーターとルールを使用しています。しかし、上記の配列から各画像に必要な最大サイズのルールを適用したいと思います。ありがとう。

4

1 に答える 1

2

私の画像検証のコード例は次のとおりです。

// 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
}
于 2015-09-22T12:06:37.590 に答える