我有以下内容:
$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
问题是我将“application / vnd.ms-office”作为我尝试上传的任何MSOFFICE文件的文件类型。我不希望只允许所有MSOFFICE文件.DOC。这有解决方法吗?
**请注意,这些MSOFFICE类型文件是在OPENOFFICE中创建的,这会有所不同吗?
答案 0 :(得分:12)
您可以做的最好的事情是在知道文件是Office文档(application/vnd.ms-office
)后验证文件扩展名,并手动为当前文件设置正确的MIME。
如果您有权访问Apache,则可以在conf/mime.types
application/msword doc
application/vnd.ms-excel xls
[..] etc
Office MIME类型列表(来自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