0

我正在尝试显示 MySQL 数据库中的图像,如果图像是 JPG,我的代码可以正常工作,但是如果我修改内容类型以显示 PNG,它就不起作用......我该如何制作为PNG工作??

<?php

    // configuration
    require("../includes/config.php"); 

    header('Content-type: image/JPG');
    $username = "xxxxx";
    $password = "*****";
    $host = "localhost";
    $database = "database";
    @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());
    $query = mysql_query("SELECT * FROM images");

    while($row = mysql_fetch_array($query))
    {
        echo $row['image'];
    }
?>

此外,是否可以显示图像及其名称和描述?谢谢!

4

1 回答 1

1

如果您不介意不支持旧版浏览器,您可以使用数据 url 来显示您的图像和描述http://en.wikipedia.org/wiki/Data_URI_scheme

<figure>
  <img src="data:image/png;base64,<?php echo base64_encode($row['image']); ?>" alt="Your alternative text" />
  <figcaption>Some more description</figcaption>
</figure>

在几乎所有情况下,将图像保存在数据库中并不是很有用。您应该注意 mimetype 中的大写和小写字母,请参阅http://de.selfhtml.org/diverses/mimetypen.htm(它是德语,但您将能够阅读列表)。作为最后的建议 - 查看 mysqli_* 函数http://www.php.net/manual/en/book.mysqli.php

// 编辑:只是一个想法,但是如果您在数据库中有多个图像,您的图像可能会损坏,因为您只是将它们全部放入一个图像中。这行不通!使用您的代码,您一次只能显示一张图像。

于 2013-02-21T02:37:11.700 回答