显示来自MySQL的PNG图像

时间:2013-02-21 02:24:14

标签: php mysql image

我正在尝试从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'];
    }
?>

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

1 个答案:

答案 0 :(得分:1)

如果您不介意不支持旧浏览器,则可以使用数据网址来显示图片和说明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

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