2012-11-03 35 views
7

मैं निम्नलिखित है:MSOFFICE MIME प्रकार सत्यापन

$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 ऑफिस" किसी भी MSOFFICE फ़ाइल है कि मैं अपलोड करने के लिए प्रयास का फ़ाइल प्रकार के रूप में है। मैं सभी एमएसओएफएफआईसी फाइलों को अनुमति नहीं देना चाहता, केवल डीओसी। क्या इसके आसपास कोई कार्य है?

** कृपया ध्यान दें कि इन MSOFFICE प्रकार फ़ाइलों को OPENOFFICE में बनाया गया था, इससे कोई फर्क पड़ता है?

उत्तर

10

फ़ाइल को सत्यापित करने के बाद फ़ाइल एक्सटेंशन सत्यापित करना फ़ाइल दस्तावेज़ (application/vnd.ms-office) है और वर्तमान फ़ाइल के लिए मैन्युअल रूप से सही MIME सेट करें।

आप अपाचे के लिए उपयोग किया है, तो आप सही माइम में conf/mime.types

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

कार्यालय माइम प्रकार की सूची (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