我試圖從數據庫讀取圖像(blob),但是我有問題,因爲我不知道MIME類型的圖像。我只有tinyblob。使用php顯示存儲在數據庫中的圖像(tinyblob)
我可以讀取圖像並將其保存回我的硬盤嗎?
我試圖從數據庫讀取圖像(blob),但是我有問題,因爲我不知道MIME類型的圖像。我只有tinyblob。使用php顯示存儲在數據庫中的圖像(tinyblob)
我可以讀取圖像並將其保存回我的硬盤嗎?
最好的解決方案是在將圖像插入blob字段的同時將mime類型存儲在數據庫中。否則,你將有以下的圖像檢索每次:
$image = $row['imageblob']; // $row = result row from DB query.
$finfo = new finfo(FILEINFO_MIME);
$mime_type = $finfo->buffer($image);
這得到昂貴繁忙的系統上非常快,所以最好做一次的判定,存儲結果。
爲什麼不將圖像始終存儲在硬盤上,並在數據庫中存儲基於已知目錄的相對鏈接?
下面是一些代碼,我已經習慣了從一個MySQL數據庫
<a href="index.php"><img src="data:image/png;base64,<?php echo base64_encode($MyClass->getLogo())?>" alt="Logo" width="233" height="65" /></a>
而且getLogo()函數
public function getLogo()
{
if ($this->getId())
$query = "SELECT `logo` FROM Logos WHERE `logo_id` = '{$this->getId()}' LIMIT 1";
else
$query = "SELECT `logo` FROM Logos WHERE `logo_id` = '1' LIMIT 1";
$result = mysql_query($query);
if ($result)
$row = mysql_fetch_array($result);
else
return NULL;
return ($row['logo']);
}
THX的幫助rogerlsmith得到一個標誌(BLOB) – senzacionale
THX的幫助馬克 – senzacionale