Reputation: 708
I gave the validation rule like this
'file'=>'mimes:png,gif,jpeg,txt,pdf,doc,docx|max:1024'
But when the docx
file is uploaded, it shows this error
The file must be a file of type: png, gif, jpeg, txt, pdf, doc, docx.
Other types are working. I have tested it with doc and images and PDF. What do I have to do to solve this? I have tried creating mimes.php
in the app/config folder but didn't work. I'm using laravel 4.
Upvotes: 3
Views: 1846
Reputation: 7474
I did have that issue, and I solved it through these mime type:
$mimeType = array('application/zip','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.ms-office','application/vnd.ms-excel');
instead of using just doc/docx use above mimes, and you won't get validation error, when uploading doc/docx files.
Validation related to mime type:
if (!in_array($file->getMimeType(), $this->mimeType)) {
$this->errors->add($key, $this->messages['mimeType']);
}
See, if that helps.
Upvotes: 2
Reputation: 4215
The issue is that a docx is actually a zipped XML file format. It thinks you're uploading a zip file.
Office Open XML is a zipped, XML-based file format... Wikipedia
You can get around this by allowing a zip to be uploaded and validate it ends in .docx otherwise it will delete the file and throw an error.
Upvotes: 1