2012-11-03 20 views
7

Mam następujący:Msoffice typ MIME weryfikacja

$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 

Problemem jest to, że jestem coraz „application/vnd.ms-office” jako typu pliku dla każdego pliku Msoffice że postaram się przesłać. NIE chcę pozwalać na wszystkie pliki MSOFFICE, tylko pliki .DOC. Czy istnieje obejście tego problemu?

** Proszę zauważyć, że te pliki typu MSOFFICE zostały utworzone w OPENOFFICE, czy to miałoby znaczenie?

Odpowiedz

10

Najlepszym sposobem na sprawdzenie jest rozszerzenie pliku po tym, jak wiemy, że plik jest dokumentem Office (application/vnd.ms-office) i ręcznie ustaw prawidłowy MIME dla bieżącego pliku.

Jeśli masz dostęp do serwera Apache, można dodać prawidłową MIME w conf/mime.types

application/msword doc 
application/vnd.ms-excel xls 
[..] etc 

listy typów MIME biurowy (z 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 
Powiązane problemy