簡體   English   中英

使用MySQL在PHP中顯示圖像

[英]Displaying an image in php using mysql

我正在嘗試顯示圖像以及數據庫中的其他信息。

的PHP

  <?php
               mysql_connect("localhost","111","222") or die("Could not connect to localhost");
               mysql_select_db("movies") or die( "Could not connect to database");

               $result = mysql_query("SELECT * FROM allmovies");
               if ($result == false )  die(mysql_error()); 
               while($row = mysql_fetch_array($result))
               {
                    echo "<img src=' . $row['image'] . '>";
               ?>

喜歡:

標題:布拉
價格:布拉
圖片: <img src=rarara">

全部來自MySQL?

  1. 不要將圖像數據存儲在數據庫中,它們通常不適合此操作,並且會在返回數據的MySQL連接上產生額外的開銷。 您應該存儲圖像文件的路徑並提供服務。
  2. 如果您堅持要這樣做,則每次只能返回一張圖像,並根據圖像類型使用適當的標頭,如下所示:

     $imagedata = data_from_mysql(); header('Content-Length: ' . sizeof($imagedata) ); header('Content-Type: image/png'); echo $imagedata; exit; 
  3. 如果您確實想使頁面源變得腫,緩慢,難以管理且幾乎無法緩存,請執行以下操作:

     while( $imagedata = data_from_mysql() ) { echo "<img src='data:image/png;base64," . base64_encode($imagedata) . "'>"; } 

我不能足夠強調這些可怕的想法 ,您不應該使用這些想法 ,但是如果您不能聽取理性,則至少可以以正確的方式做壞事。

您可以使用imagecreatefromstring()

$im = imagecreatefromstring($row['image']);
if ($im !== false) {
    ob_start();
    imagejpeg($im);
    $data = ob_get_contents();
    ob_end_clean();
    echo '<img src="data:image/jpg;base64,' .  base64_encode($data)  . '" />';
}

只是我的看法,但是將圖像保存到文件服務器,然后將對路徑的引用而不是整個圖像存儲為blob可能更明智一些?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM