2012-11-03 10 views
7

Ich habe folgendes:MSOFFICE MIME-Typ Überprüfung

$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 

Das Problem ist, dass ich „application/vnd.ms-Office“ als Dateityp für jede MSOFFICE Datei bin immer, dass ich zu laden versuchen. Ich möchte nicht alle MSOFFICE-Dateien zulassen, nur .DOCs. Gibt es einen Workaround dafür?

** Bitte beachten Sie, dass diese MSOFFICE-Typ-Dateien in OPENOFFICE erstellt wurden, würde dies einen Unterschied machen?

Antwort

10

Das Beste, was Sie tun können, ist die Dateierweiterung zu überprüfen, nachdem Sie wissen, dass die Datei ein Office-Dokument ist (application/vnd.ms-office) und manuell den korrekten MIME für die aktuelle Datei festlegen.

Wenn Sie Zugriff auf Apache haben, können Sie den richtigen MIME in conf/mime.types

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

Liste der Office MIME-Typen (von 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 
hinzufügen