【发布时间】:2018-07-12 20:39:42
【问题描述】:
要求:用户只能上传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.
我也尝试过更改规则安排,但仍然是同样的问题。
我正在手动处理此要求。但想知道为什么这些验证规则不起作用。
【问题讨论】:
-
你从哪里得到
sometimes规则? -
@afraz 一些二进制文件的 mime 类型被错误地识别为
binary/octet-stream而不是它们的实际类型。你可以在 UploadedFile 的实例上调用guessExtension()函数来查看文件是什么 mime 类型的 Laravel 东西。 -
我尝试使用 $file->getMimeType(); 检查 mime 类型这些是正确的。意味着当我上传 pdf 时,它会显示 application/pdf。并且 guessExtension() 也返回 pdf。
-
@btl 有时是 laravel 提供的用于验证输入(如果可用)的规则。
-
哦,有趣,我不知道那个。看起来很有用。
标签: validation laravel-5