laravel 4 docx文件验证无效

时间:2015-03-12 03:49:43

标签: php file validation laravel-4

我给出了像这样的验证规则

'file'=>'mimes:png,gif,jpeg,txt,pdf,doc,docx|max:1024'

但是当上传docx文件时,它会显示此错误

The file must be a file of type: png, gif, jpeg, txt, pdf, doc, docx.

其他类型正在运作。我用doc和图像以及PDF测试了它。我该怎么做才能解决这个问题?我尝试在app / config文件夹中创建mimes.php但是没有用。我正在使用laravel 4。

2 个答案:

答案 0 :(得分:1)

问题是docx实际上是一种压缩的XML文件格式。它认为你正在上传一个zip文件。

  

Office Open XML是一种基于XML的压缩文件格式... Wikipedia

您可以通过允许上传zip并验证它以.docx结尾来解决此问题,否则它将删除该文件并抛出错误。

答案 1 :(得分:1)

我确实遇到过这个问题,我通过这些mime类型解决了这个问题:

$mimeType = array('application/zip','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.ms-office','application/vnd.ms-excel');

而不是仅使用doc / docx使用上面的mimes,并且在上传doc / docx文件时,您不会获得验证错误。

与mime类型相关的验证:

if (!in_array($file->getMimeType(), $this->mimeType)) {
    $this->errors->add($key, $this->messages['mimeType']);
}

看,如果有帮助。