要求:用户只能上传pdf,word文档,excel或powerpoint。 我已经尝试过这些验证规则,但它们都没有工作:
'fileUpload' => 'sometimes|mimes:doc,docx,xls,xlsx,ppt,pdf,zip|max:2048',
我也尝试过以下规则来测试pdf。
'fileUpload' => 'sometimes|mimetypes:application/pdf|max:2048',
'fileUpload' => 'sometimes|mimetypes:pdf|max:2048',
'fileUpload' => 'sometimes|mimes:application/pdf|max:2048',
'fileUpload' => 'sometimes|mimes:pdf|max:2048',
当我尝试上传任何文件时,第一条规则说:
The file upload must be a file of type: doc, docx, xls, xlsx, ppt, pdf, zip.
第二条规则说:
The file upload must be a file of type: application/pdf.
我也试图改变规则安排,但仍然存在同样的问题。
我手动处理此要求。但是想知道为什么这些验证规则不起作用。
答案 0 :(得分:0)
根据5.5 documentation
MIME规则的基本用法
'photo' => 'mimes:jpeg,bmp,png'
即使您只需要指定扩展名,此规则也是如此 实际上通过阅读来验证文件的MIME类型 文件的内容并猜测其MIME类型。
可在以下位置找到MIME类型及其相应扩展程序的完整列表:https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
尝试使用完整扩展程序
'fileUpload' => 'sometimes|mimes:application/pdf|max:2048',
答案 1 :(得分:0)
我找到了原因。我试图上传多个文件,并且验证规则有望像这样验证数组
'fileUpload.*'. instead of just 'fileUpload'
我只是错过了*。 因为我的输入字段是上传多个文件
<input type="file" name="fileUpload[]" multiple />