我一直在PHP文檔中四處尋找一段時間,但我找不到將MIME類型擴展名轉換爲文件類型擴展名的方法。將MIME類型轉換爲文件擴展名PHP
image_type_to_extension
似乎工作,如果該文件是一個圖像。在我的特殊情況下,MIME類型不適用於圖像,它們適用於字體類型:'otf,ttf'。
我一直在PHP文檔中四處尋找一段時間,但我找不到將MIME類型擴展名轉換爲文件類型擴展名的方法。將MIME類型轉換爲文件擴展名PHP
image_type_to_extension
似乎工作,如果該文件是一個圖像。在我的特殊情況下,MIME類型不適用於圖像,它們適用於字體類型:'otf,ttf'。
您可以使用類似:
function getExtension ($mime_type){
$extensions = array('image/jpeg' => 'jpeg',
'text/xml' => 'xml'
);
// Add as many other Mime Types/File Extensions as you like
return $extensions[$mime_type];
}
注意:不是每一個MIME類型有一個固定的文件擴展名。此外,像application/octet-stream
這樣的MIME類型可以引用多個文件擴展名。
你,我不知道八位字節流涉及多個文件擴展名。也許我應該找到一種方法來發送文件名,雖然現在它是「blob」,因爲將dataURL轉換爲blob,但我可以更改文件名,但它在firefox中不起作用:http://stackoverflow.com/questions/8495301/changing-filename-in-blobbuilder -s-pass-as-formdata-on-xhr – TaylorMac 2013-05-12 19:23:56
如果你決定走這條路線,下面是一個相當詳盡的列表,讓你開始:https://github.com /EllisLab/CodeIgniter/blob/develop/application/config/mimes.php – xbonez 2013-05-12 19:32:41
對於像我這樣遲到的人來說,這裏有一個專門的庫來完成這個工作:https://github.com/dflydev/dflydev-apache-mime -types – Romain 2016-05-02 09:51:58
不確定這個文件是否會始終返回正確的文件擴展名,但是您可以使用pathinfo()從文件名獲得擴展名,而不是轉換mime_types。
$Extension = pathinfo(basename($_FILES['image']['name']), PATHINFO_EXTENSION);
echo $Extension;
首先獲取圖像的$ mime類型,然後用'/'分解字符串,這將返回一個數組。
$extension = explode('/', $mime)[1];
我想知道這個解決方案是否可以工作。但它會因爲MIME類型總是有2個部分用「/」分開。 MIME類型的完整列表,可以證明它https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types – BoCyrill 2017-08-21 11:48:26
是的,不是放置一些MIME類型,它可以簡單地像這樣完成.... – 2017-08-21 11:54:29
並非每個MIME類型都有固定的文件擴展名。我會創建一個文件擴展名的陣列,用於您的系統將要處理的每種MIME類型 – 2013-05-12 19:10:16
OTF字體沒有標準MIME類型 – 2013-05-12 19:15:16
當然有:'application/x-font-otf' – 2013-05-12 19:16:32