0

我已经查看了这个主题的大部分主题,但我仍然一无所知!我知道将图像存储在数据库中并不是最佳实践,但这就是我所拥有的。我已经设法上传图片没有问题,但是当我尝试显示它们时,我收到了这条消息。

图像*无法显示,因为它包含错误。

我已经测试了代码以查看是否通过回显文件内容实际选择了文件,并且我得到了与图像相关的代码页面,但是当我尝试使用标题显示图像时(内容类型:图像/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;
}    

任何帮助都非常感谢谢谢# Sarita

4

2 回答 2

1
  1. <?php不见了。这会导致您的代码不会被解释为 PHP,而是未经处理就发送给客户端。
  2. 删除?>. 它可能会导致您不希望的额外输出。您不希望的额外输出在文本文件中可能是可接受的,但可能会使二进制文件的解析器跳闸。
  3. 使用文本编辑器打开因包含错误而无法显示的图像以查看其他错误。
于 2013-08-11T08:40:37.747 回答
0

image/jpegmime 类型不应该是image/jpg.

确保在结尾之前<?php和之后都没有任何内容?>,包括 unicode BOM(某些编辑器可能不会显示)。

如果 gpc_magic_quotes 已打开,您可能已将图像存储在数据库中,并在其中添加了反斜杠。确保数据库中的图像格式正确。

于 2013-08-11T08:40:15.217 回答