I have the following:
$mimeTypes = array('application/msword'); //used to be an array
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic");
$type = $finfo->file($_FILES['userfile']['tmp_name']);
$mime = substr($type, 0, strpos($type, ';'));
if (in_array($mime, $mimeTypes))
{ //let it in
The problem is that I am getting "application/vnd.ms-office" as the filetype for any MSOFFICE file that I attempt to upload. I DO NOT wish to allow all MSOFFICE files, only .DOC's. Is there a workaround for this?
**Please note that these MSOFFICE type files were created in OPENOFFICE, would this make a difference?
For detecting MIME-types, use the aptly named "mimetype" command. It has a number of options for formatting the output, it even has an option for backward compatibility to "file". But most of all, it accepts input not only as file, but also via stdin/pipe, so you can avoid temporary files when processing streams.
Here are the correct Microsoft Office MIME types for HTTP content streaming: Extension MIME Type. .doc application/msword. .dot application/msword. .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document.
MS Excel has the following observed MIME types: application/vnd. ms-excel (official) application/msexcel.
The best you can do is verify file extension after know the file is a Office document (application/vnd.ms-office
) and set manually the correct MIME for current file.
If you have access to Apache, you can add the correct MIME in conf/mime.types
application/msword doc
application/vnd.ms-excel xls
[..] etc
List of Office MIME Types (from http://filext.com/faq/office_mime_types.php)
.doc application/msword
.dot application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template
.docm application/vnd.ms-word.document.macroEnabled.12
.dotm application/vnd.ms-word.template.macroEnabled.12
.xls application/vnd.ms-excel
.xlt application/vnd.ms-excel
.xla application/vnd.ms-excel
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template
.xlsm application/vnd.ms-excel.sheet.macroEnabled.12
.xltm application/vnd.ms-excel.template.macroEnabled.12
.xlam application/vnd.ms-excel.addin.macroEnabled.12
.xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12
.ppt application/vnd.ms-powerpoint
.pot application/vnd.ms-powerpoint
.pps application/vnd.ms-powerpoint
.ppa application/vnd.ms-powerpoint
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.potx application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow
.ppam application/vnd.ms-powerpoint.addin.macroEnabled.12
.pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12
.potm application/vnd.ms-powerpoint.template.macroEnabled.12
.ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With