无法验证laravel中的输入文件

时间:2018-04-20 02:34:47

标签: laravel validation laravel-5 vue.js httprequest

我想验证file input,但验证不起作用,即使所提供的文件符合验证要求,知道我正在上传多个,验证也无法返回The given data was invalid.文件一次:

以下是我使用的验证

    Validator::make($request->all('files'), [
        'files' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
    ])->validate();

这是我使用的 HTML

<input type="file" id="files" ref="files" multiple v-on:change="uoloadFiles()" name="files"/>

知道我使用 vue 来处理表单提交。

感谢您的帮助

3 个答案:

答案 0 :(得分:3)

这应该有效,因为您要上传多个文件,每个文件都应该单独验证。

Validator::make($request->all('files'), [
    'files.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
])->validate();

请注意*

进一步参考here

答案 1 :(得分:0)

如果你只有这个字段,你可以这样做:

Validator::make($request->only('files'), [
    'files.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
])->validate();

否则使用不带参数的all方法:

 Validator::make($request->all(), [
      'files.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
 ])->validate();

答案 2 :(得分:0)

尝试

$this->validate(request(), [
         'files' => 'required|mimes:jpeg,png,jpg,gif,svg|max:2048'
    ]);

我认为你不需要image mimes就好了