我有问题显示图像存储在数据库中作为一个blob。我在很多论坛搜索过,但找不到任何答案。不显示斑点图像
我把代码分成两个文件。在index.php我插入图像,并尝试从get_image.php文件加载它。
这里是index.php文件
<form action="index.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" name="image"> <input type="submit" value="upload">
</form>
<?php
$file = $_FILES['image']['tmp_name'];
if(!isset($file)){
echo "Please select an image.";
}
else{
$image_name = mysql_real_escape_string($_FILES['image']['name']);
$image = mysql_real_escape_string(file_get_contents($_FILES['image']['tmp_name']));
$imageType = mysql_real_escape_string($_FILES['image']['type']);
$image_size = getimagesize($_FILES['image']['tmp_name']);
if($image_size == FALSE){
echo "That's not an image";
}
else{
if (!$insert = mysql_query("UPDATE 'table_name' SET `image` = '$image' WHERE 'row_name' = '$student_id'")){
echo "Problem updating image";
}
else{
echo "<img src=get_image.php>";
}
}
}
?>
而且get_image.php
<?php
$query = mysql_query("SELECT image FROM table_name WHERE student_id = 51686");
while($row= mysql_fetch_assoc($query)){
$imageData = $row['image'];
}
header("Content-type: image/png");
echo $imageData;
?>
谁能帮助请。我的PHP版本是5.2在输出有图像图标,但没有图像。如果我右键单击并尝试将其另存为图像,它不是图像格式,它保存为get_image.php。所以我不知道是什么问题。
尝试更改内容类型为文本/平原和打开图像url直接。查找png代码前面的空格和错误消息。 (你有没有连接你的dbms,并在get_image.php中选择了一个数据库?) – urzeit
@urzeit更改为text/plain没有差异,没有得到你,如何打开直接在Blob中的图像,我从db中获取它,自动地,png代码以“?Jw?= wf?yf?y?)?”开始。是的,我连接我的数据库在get_image.php – Tracker7
从这里我们可以看到,数据是不是有效的png(它以'\ 211PNG'开头。所以我们必须看你存储和加载到你的数据库。 – urzeit