2016-09-09 89 views
0

我有存儲在MySQL數據庫中的文件。檢測MIME從數據庫中提取的文件類型

我們需要找到這些文件的MIME類型,以強制文件在瀏覽器中打開而不是下載。

getimagesize和finfo不會在這種情況下工作,因爲它們需要一個參數作爲文件的路徑而不是文件內容。

有沒有一種方法可以直接從文件內容中檢測PHP中的MIME類型。

+0

爲什麼你甚至將文件保存到數據庫? –

+0

你是否也保存了擴展名? – MoeinPorkamel

回答

2

您可以使用finfo_open和finfo_buffer獲取MIME類型。在這個例子中,我從谷歌閱讀圖像的內容,並得到它的mimetype:

<?php 

$Resource = finfo_open(FILEINFO_MIME); 
$Info  = finfo_buffer($Resource, file_get_contents('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png')); // Returns: image/png; charset=binary 

list($Mime, $Other) = explode(";", $Info); 

echo $Mime; // image/png 
+0

完美地工作,謝謝! – ratherBeKiting