Laravel 5.7.17文件验证问题

时间:2018-12-15 17:23:43

标签: laravel validation laravel-5

该示例基于Laravel的注册。

我在register.blade.php中添加了以下内容:

<div class="form-group row">
    <label for="file" class="col-md-4 col-form-label text-md-right">{{ __('Files') }}</label>

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

RegisterController中的方法如下:

protected function validator(array $data)
{
    $validator = Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'files.*' => ['required', 'file'],
    ]);

    dd($validator->errors());
}

我正在尝试上传PDF和DOC文件。

MessageBag {#236 ▼
  #messages: array:2 [▼
    "files.0" => array:1 [▼
      0 => "The files.0 must be a file."
    ]
    "files.1" => array:1 [▼
      0 => "The files.1 must be a file."
    ]
  ]
  #format: ":message"
}

必须是文件?这些是文件...

2 个答案:

答案 0 :(得分:3)

只需将enctype="multipart/form-data"添加到您的表单中即可:

<form method="POST" action="{{ route('register') }}" enctype="multipart/form-data">

答案 1 :(得分:0)

尝试一下:

protected function validator(array $data)
{
    $validator = Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'files.*' => ['required', 'mimes:doc,docx,pdf,txt'],
    ]);

    dd($validator->errors());
}