我试图从数据库读取图像(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