2013-03-27 22 views
0

我將這個方法稱爲GetID3MIMEtype('test.docx') 該方法將文件類型更改爲「application/zip」但我沒有上傳任何zip文件這個不正確的文件類型。爲什麼我的類型在getID3中改變

function GetID3MIMEtype($filename) { 
     $filename = realpath($filename); 
     $getID3 = new getID3; 
     $ThisFileInfo = $getID3->analyze($filename); 
     getid3_lib::CopyTagsToComments($ThisFileInfo);  
     log_error(print_r($ThisFileInfo['mime_type'], true)); 
     if (empty($ThisFileInfo['error'])) { 
     if ($ThisFileInfo['fileformat']) { 
      $temp = explode("/", $ThisFileInfo['mime_type']); 
      $mime = $temp[0]."/".$ThisFileInfo['fileformat']; 
     } 
     else 
      $mime = $ThisFileInfo['mime_type']; 
     return $mime; 
     } 
     else { 
     log_error("ID 3 Error - ".$filename." - ".print_r($ThisFileInfo['error'], true)); 
     return false; 
     } 
    } 

問題

  1. 什麼是getID3
  2. 爲什麼此類更改文件礦類型
+0

[Office Open XML](http://en.wikipedia.org/wiki/Office_Open_XML) – SparKot 2013-03-27 08:49:36

回答

3

一個.docx文件一個zip文件 - 嘗試重命名爲.zip和打開它。你會看到它是一個XML和其他嵌入式文檔的集合。

這就是說,getId3被設計爲多媒體文件類型使用 - 視頻和音頻文件 - 因爲它說的project page

這是一個MIME類型不是地雷類型。它類似於文件擴展名,但功能更強大。它允許不同的應用程序(可能在不同的平臺上)知道應該如何處理特定的文件。嘗試閱讀this page瞭解更多信息。

+0

非常感謝你:) :) – Duleep 2013-03-27 09:55:00

1

這個getID3庫裏似乎有一個bug;至少在當前版本爲getid3-1.9.5-20130220

如果你打開文件module.archive.zip.php和更改塊

if (!empty($ThisFileInfo['zip']['files']['ppt'])) { 
    $info['mime_type'] = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'; 
} elseif (!empty($ThisFileInfo['zip']['files']['xl'])) { 
    $info['mime_type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; 
} elseif (!empty($ThisFileInfo['zip']['files']['word'])) { 
    $info['mime_type'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'; 
} 

if (!empty($info['zip']['files']['ppt'])) { 
    $info['mime_type'] = 'application/vnd.openxmlformats-officedocument.presentationml.presentation'; 
} elseif (!empty($info['zip']['files']['xl'])) { 
    $info['mime_type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; 
} elseif (!empty($info['zip']['files']['word'])) { 
    $info['mime_type'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'; 
} 

(即改變$ThisFileInfo$info

application/zip的MIME類型更改爲application/vnd.openxmlformats-officedocument.wordprocessingml.document了word .docx

+0

+1很好地發現 – Basic 2013-03-27 09:35:15

相關問題