如何在Laravel

时间:2017-09-12 16:06:50

标签: php laravel validation laravel-5

我正在Laravel上传文件,其验证似乎不起作用。

我的控制器代码如下:

public function cv(Request $request) {
    if ($request->hasFile('cv')) {
        $file = $request->file('cv'); //i need this later to upload the file
        $rules= [
             'cv' => 'mimes:application/msword,text/plain,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
        ];
        $x = $request->all();
        $validator=Validator::make($x, $rules);
        if ($validator->passes()){
            dd("Passes");
        }else{
            dd("fails");
        }
}}

我的文件的html代码是:<input type='file' name='cv'><br>

由于某些原因,此代码似乎失败,并且仅当文件是pdf时验证程序才会通过。我只希望用户上传pdf文件,doc文件,docx文件,amd文本/普通文件。当我尝试上传微软doc文件时,它失败了。有人可以帮助我,我不确定我做错了什么。

3 个答案:

答案 0 :(得分:2)

我认为你推翻了params

 $validator=Validator::make($x, $rules);

答案 1 :(得分:1)

也许试试这个:

'cv' => 'mimes:pdf'

https://laravel.com/docs/5.5/validation#rule-mimes

答案 2 :(得分:1)

根据the documentation,在按原样指定mime类型时应使用mimetypes,而mimes应用于指定文件扩展名。 HTH!