2011-11-07 90 views

回答

5

最好的解决方案是在将图像插入blob字段的同时将mime类型存储在数据库中。否则,你将有以下的图像检索每次:

$image = $row['imageblob']; // $row = result row from DB query. 

$finfo = new finfo(FILEINFO_MIME); 
$mime_type = $finfo->buffer($image); 

这得到昂贵繁忙的系统上非常快,所以最好做一次的判定,存储结果。

相关PHP docs here

+0

THX的帮助马克 – senzacionale

1

为什么不将图像始终存储在硬盘上,并在数据库中存储基于已知目录的相对链接?

1

下面是一些代码,我已经习惯了从一个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']); 
    } 
+0

THX的帮助rogerlsmith得到一个标志(BLOB) – senzacionale

相关问题