Mimes验证在Laravel中无法正常工作

时间:2017-06-22 14:11:58

标签: laravel validation laravel-5

我的网页包含要上传的文件,我希望上传的文件只能是pdf,doc或docx。

我的表单标签也有enctype =" multipart / form-data"

我的HTML看起来像:

<div id="cv_upload" class="row">
    <div class="col-xs-12">
          <input type="file" name='cv'>
    </div>
</div>

与此相关的$ rules数组如下:

'cv' => 'mimes:application/pdf,application/doc,application/docx|required'

最后我的消息如下:

'cv.required' => 'A selection for C.V. is required before proceeding.',
'cv.mimes' => 'CV must be of the following file type: pdf, doc or docx.'

唯一的问题是,即使在我上传pdf或doc之后,我收到的消息也是必需的。我不知道为什么这不能按预期工作。我还尝试删除了&#39;应用程序/&#39;但这也没有成功。请帮忙。

4 个答案:

答案 0 :(得分:0)

在表格中尝试放files="true"
在验证器中尝试放置验证,例如required|mimes:doc,docx,pdf

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

修改:当您使用mimes:application/doc时,实际上是 mimetypes:application/doc

答案 1 :(得分:0)

确保您的表单具有 enctype =&#34; multipart / form-data&#34;

的属性

此外,如果您使用 mimes 验证,则格式必须为 &m; 39:mimes:jpeg,bmp,png&#39; https://laravel.com/docs/5.6/validation#rule-mimes

您可以在此处阅读enctype属性:What does enctype='multipart/form-data' mean?

答案 2 :(得分:0)

嗨,我遇到了类似的问题,点击以下 cmds 问题后一切正常 php artisan cache:clear , php artisan config:clear , php artisan route:clear

答案 3 :(得分:0)

如果您遇到 .docx 扩展文件的任何问题,请使用如下验证

'cv' => 'mimetypes:application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/octet-stream,application/pdf'

这将有助于验证 doc、Docx 和 pdf 文件。

要显示正确的错误消息,请使用以下代码:

public function messages ()
{
    return [
        'cv.mimetypes' => 'The cv file must be a file of type: pdf, doc, docx.'
    ];
}

参考:Laravel 7

相关问题