我尝试将mysql数据库中的图像显示到我的php网站但是图像没有显示,只显示图像描述。请帮助我的代码为什么没有正确显示图像。下面是我用于将图像保存到具有blob数据类型的数据库的脚本。
*<?php
$image = $_POST['images']['tmp_name'];
$sql = mysql_query("INSERT INTO product(image) VALUES('$image')");
if($sql){
echo "Product Registration Successful";
}
else{
echo "Product Registration Failed";
}
?>*
以下是我用来在网站上显示图片的脚本:
*<?php
$sql = mysql_query("SELECT * FROM product");
while ($tampil = mysql_fetch_array($sql)) {
?>
<tr>
<td class="img-thumbnail"><?php echo '<img src="data:image/jpeg;base64,'.base64_encode( $tampil['image'] ).'"/>'; ?></td>
</tr>
<?php
}
?>*
答案 0 :(得分:3)
您没有将图像内容保存到PHP中的数据库,只保存临时名称。
您可以使用以下代码解决此问题:
<?php
$image = file_get_contents($_FILES['images']['tmp_name']);
$image = base64_encode($image);
$sql = mysql_query("INSERT INTO product(image) VALUES('".$image."')");
if ($sql) {
echo "Product Registration Successful";
} else {
echo "Product Registration Failed";
}
?>
答案 1 :(得分:2)
move_uploaded_file()
$image['name']['tmp_name']
是一个临时位置,用于存储一段时间后删除的内容,实际上,将您必须使用的图像move_uploaded_file()
存储到另一个文件夹。这应该在验证图像后完成。
Base64_incode()
如果您只想使用base64值,则必须将图像信息存储在数据库中,在这种情况下,您不需要移动文件
$image = imagecreatefromstring($file);
ob_start();
imagepng($image);
$contents = ob_get_contents();
ob_end_clean();
现在,将$contents
存储在您的数据库中。