2013-02-21 174 views
0

我試圖從MySQL數據庫中顯示圖像,如果圖像是JPG,我的代碼工作正常,但如果我修改內容類型以顯示PNG,它不起作用... 我如何使它適用於PNG?顯示來自MySQL的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']; 
    } 
?> 

此外,是否可以顯示圖像及其名稱和描述? 謝謝!

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 – 2013-02-21 02:25:45

+0

要顯示PNG圖像,請將PNG圖像放入數據庫中。要顯示JPG圖像,請將JPG圖像放入數據庫中。 – 2013-02-21 02:26:20

+0

我嘗試在我的dadtabase中使用JPG和PNG圖像,但代碼只顯示JPG,當我嘗試顯示PNG時,我只是得到那個破碎的圖像。 – inBlackAndWhite 2013-02-21 02:29:24

回答

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

//編輯:只是一個想法,但如果你在數據庫中有多個圖像,你的圖像可能會被破壞,因爲你只是把它們放到一個圖像中。這不行!使用您的代碼,您只能一次顯示一個圖像。

+0

我正在測試這隻有一個圖像在我的數據庫...不是與「真正的」數據庫。感謝你的回答。 – inBlackAndWhite 2013-02-21 02:45:13