无法从mysql DB获取图像

时间:2013-07-24 01:44:18

标签: php mysql database image-uploading

我是php的新手。我有一个示例mysql数据库,我有一个名为testdb的表,列id(INT)和图像(BLOB)。我已将图像上传到testdb。已成功上传。以下是php代码。变量$ conn包含连接详细信息。我有一个html页面,在提交时重定向到这个php页面。

<?php
$name = $_FILES["sample"]["name"];
echo $name . "<br/>";

$tmp_name = $_FILES["sample"]["tmp_name"];
echo $tmp_name . "<br/>";

$size = $_FILES["sample"]["size"];
echo $size . "<br/>";

$contents = file_get_contents($tmp_name);
$htmlen = htmlentities($contents);
$cont = mysql_real_escape_string($contents);

$query = "INSERT INTO testdb(image)
      VALUES ('$cont')";
$dbquery = mysql_query($query, $conn);
if($dbquery){
    echo "successfully inserted";
    }
else{
    echo "could not inserted" . mysql_error();
    }
?>

我正在尝试使用以下代码获取图像。但它显示字符串而不是图像。据我所知,这应该可以正常工作。

<?php
$query = "SELECT image, id
    FROM testdb ";
$dbquery=mysql_query($query , $conn);
if(! $dbquery){
    echo "Could not selected the data from database. " . mysql_error();
}
while( $row = mysql_fetch_array($dbquery) ){
    $decodeimg = html_entity_decode($row["image"]);
echo "<img src= $decodeimg/><br/> hellow orld <br/>";
}
?>

任何人都可以帮我解决这个问题。提前谢谢。

2 个答案:

答案 0 :(得分:0)

而不是将实际图像存储在数据库中(这是多余的,因为它可能也存储在您的服务器上);为什么不将PATH作为字符串存储到图像中,从数据库中查询字符串,然后使用php将其附加到'src'属性。

答案 1 :(得分:-1)

从DB显示BLOB image时,我也遇到了同样的错误。我只是使用解码方法来解决这个问题....

$photo=$myrow['image'];    
echo '<img src="data:image/jpeg;base64,' . base64_encode( $photo ) . '" width="150" height="150" />