在MySql DB中显示保存为Blob的图像

时间:2011-04-02 19:53:03

标签: php mysql blob

我正在创建一个博客,下面的一些代码是博客网格打印出来的地方。 我有一个blob保存在我的mysql数据库中,我试图把它变成一个图像。 imageName,imageType,imageSize,imageContect在运行我的代码时都接收值。问题是imageContent变量显示一堆随机字符而不是图像。似乎这个的原因是标题,但我不知道该怎么做。任何人都可以帮我重新编码图像。感谢

while($row = mysql_fetch_array($result)) 
{

    echo "name ".$row['imageName'].'<BR>';
    echo "type ".$row['imageType'].'<BR>';
    echo "size ".$row['imageSize'].'<BR>';

    echo '<B>'.$row['blogTitle'].'</B><br />';

    echo '<A HREF = http://www.alcaeos.com/blog/displayblogProcess.php?mode=edit&blogID='.$row['blogID'].'>Edit</A>&nbsp;&nbsp;&nbsp;&nbsp;';       
    echo '<A HREF = http://www.alcaeos.com/blog/displayblogProcess.php?mode=delete&blogID='.$row['blogID'].'>Delete</A><BR />';


    echo $row['blog'].'<br />';

    header("Content-length:".$row['imageSize']);
    header("Content-type:.".$row['imageType']);
    header("Content-Disposition: attachment; filename=".$row['imageName']);
    echo $row['imageContent'].'---------<br /><br /><br />';

}

2 个答案:

答案 0 :(得分:0)

这是一个显示存储为blob的图像的相当简单的示例。

<?php

require_once ('./includes/db.inc.php'); // Connect to the db.

//let the browser know its an image
header("Content-type: image/jpeg");

// Make the query.
$query = "SELECT thumbnail FROM items where item_id=" . $_GET['item_id'];
$result = @mysql_query ($query);

if ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
  echo $row['thumbnail'];
  }

mysql_close(); // Close the database connection.
?>

答案 1 :(得分:0)

跳过Content-length和Content-disposition,只需使用Content-type并将其设置为有效的MIME类型。

假设它们是JPEG,你可以这样做:

header( 'Content-type: image/jpeg' );

查看this link too