我是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/>";
}
?>
任何人都可以帮我解决这个问题。提前谢谢。
答案 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" />