當我使用finfo_open(FILEINFO_MIME_TYPE)時,我用來獲得不同的MIMI類型。更改MIMI類型定義?
例如,基於內存,我相信docx是application/vnd.openxmlformats-officedocument.wordprocessingml.document(請參閱此StackOverflow後What is a correct mime type for docx, pptx etc?)。我還記得他們顯示爲應用程序/ zip,但可能是使用mime_content_type()時。另外,認爲js文件是作爲application/x-javascript發佈的。
下面是我現在正在與顯示它們的腳本相處。我最近更新到PHP 5.14,並想知道是否有新的標準或我是否搞砸了。我很好,但將不得不改變我的腳本比較擴展到MIMI類型。
編輯 - 剛剛在PHP手冊中找到以下內容。
從PHP> = 5.3.11和> = 5.4.1開始,魔術數據庫格式有 已更改。由於這個原因,內部的mime數據庫被升級了。這個 尤其影響讀取外部魔法的代碼。在舊格式的魔法文件中讀取 將不起作用。另外,一些文本類型的文本 已經改變,例如對於PHP 將是「PHP腳本,ASCII文本」而不是「PHP腳本文本」 返回。
謝謝
MIMI列表基於以下腳本
- directory
csv - text/plain
doc - application/msword
docx - application/msword
htm - text/html
ini - text/plain
jpg - image/jpeg
js - text/plain
mp3 - application/octet-stream
pdf - application/pdf
php - text/html
pptx - application/vnd.ms-powerpoint
pst - application/octet-stream
so - application/x-sharedlib
txt - text/plain
wmv - video/x-ms-asf
xls - application/msword
xlsx - application/vnd.ms-excel
zip - application/zip
PHP代碼
<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
$files[pathinfo($filename, PATHINFO_EXTENSION)]=array('filename'=>$filename,'finfo'=>finfo_file($finfo, $filename));
}
ksort($files);
foreach ($files as $fileext=>$file) {
echo ($fileext.' - '.$file['finfo'].'<br />');
}
finfo_close($finfo);
?>
什麼是最常見的配置?有沒有更好的方法來確保上傳文件的擴展名與文件類型匹配? – user1032531