2011-07-06 62 views
1

我有一個來自blob數據庫字段的圖像。 有什麼辦法可以在不保存的情況下檢查字段的MIME類型嗎?如何確定圖像類型

getimagesize() and mime_content_type() 

需要的文件名...

我想要做這樣的事情:

<img \n" . 'src="data:image/gif;base64,' . $base64 . 
      '" alt="base64 img" width="80" height="15" /> 
+0

沒有文件名?你如何獲得信息? – diEcho

回答

3

將文件數據插入到數據庫中時,實際上應該使用它保存MIME類型。檢測不完美,並且至少較慢。

在任何情況下:

$mime_type = finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE); 

來源:Detecting image type from base64 string in PHP

0

據我所知,你不能做到這一點。實際上,您應該始終將圖像類型與blob圖像數據一起存儲在數據庫中。

但基本上,您可以打印blob數據並設置標題以在瀏覽器中顯示圖像。

header ("Content-type: image/jpeg"); 
$sql = "SELECT blobfield FROM table WHERE ..."; 
$result = mysql_query($sql, $conn); 
$img = mysql_fetch_row($result); 
print $img[0]; 
+0

這種方式我現在在做... – Subdigger

0

這是可能的,但你必須知道你可能遇到的圖像類型。例如,GIF在數據的前三個字節中說'GIF'。

http://www.onicos.com/staff/iz/formats/gif.html

利用這些信息,你可以檢查從團塊流,並採取相應的行動。不知道你是否在意那麼多的工作,但它是可行的。