我已经查看过这个主题的大多数主题,但我仍处于黑暗中!我知道将图像存储在数据库中并不是最佳实践,但这就是我所拥有的。我设法上传图像没有问题,但当我尝试显示它们时,我收到了这条消息。
无法显示图片 * ,因为它包含错误。
我已经测试了代码,看看是否通过回显文件内容实际选择了文件,我得到了与图像相关的代码页,但是当我尝试使用标题显示图像时(内容类型:图像/ jpeg)我收到上面的消息。我将图像存储为longblob。这是我的代码
<?php
$username = "root";
$password = "";
$host = "localhost";
$database = "test";
mysql_connect($host, $username, $password)
or die("Can not connect to database: ".mysql_error());
mysql_select_db($database) or die("Can not select the database: ".mysql_error());
$id = 3;
if (!isset($id) || empty($id) || !is_int($id)) {
die("Please select your image!");
} else {
$query = mysql_query("SELECT image FROM images WHERE image_id='".$id."'")
or die(mysql_error());
//echo $query;
$row = mysql_fetch_row($query);
$content = $row['image'];
header('Content-type: image/jpg');
echo $content;
}
任何帮助非常感谢 谢谢# 萨里塔
答案 0 :(得分:1)
<?php
丢失了。这导致您的代码不被解释为PHP,而是发送给未经处理的客户端。?>
。它可能导致你没有打算的额外输出。您想要的额外输出在文本文件中可能是可接受的,但可以使二进制文件的解析器跳闸。答案 1 :(得分:0)
mime类型应为image/jpeg
而不是image/jpg
。
确保<?php
之前没有任何内容,最后?>
之后没有任何内容,包括unicode BOM(某些编辑可能无法显示)。
如果启用了gpc_magic_quotes,您可能已将图像存储在数据库中,并在其中包含其他反斜杠。确保数据库中的图像格式正确。