看板 PHP 關於我們 聯絡資訊
※ 引述《shadowjohn (這事要用身體解釋)》之銘言: : ※ 引述《dodo12500 (小莫)》之銘言: : : 大家好,小弟剛學php,在圖片顯示上遇到一些問題 : : 我在members資料表中存NUM(int)和img(blob)這兩項資訊 : : 然後在showMembers.php上顯示編號和圖片 : : 我的問題是不曉該怎麼樣同時顯示文字訊息和圖片 : : 若在showMembers.php增加header("Content-type: image/jpeg"); 則會沒辦法顯示編號 : : 於是我想說將顯示圖片用showPic.php來顯示,但不太曉得該怎麼將img的資料傳過去 : : 或者有甚麼樣的作法比較恰當呢? : : 麻煩板上大大們幫助了 謝謝! : : showMembers.php : : ---------------------------------------------- : : <?php : : include("DB_connect.php"); : : $sql = "SELECT * FROM members"; : : $result = $conn->query($sql); : : if ($result->num_rows > 0) { : : // output data of each row : : while($row = $result->fetch_assoc()) { : : echo "NUM:".$row["NUM"]."<br>"; : : echo "<IMG height='100' SRC=\"showPic.php?img=".$row[img]."\">"; : : } : : } else { : : echo "0 results"; : : } : : $conn->close(); : : ?> : : ---------------------------------------------- : : showPic.php : : ---------------------------------------------- : : <?php : : header("Content-type: image/jpeg"); : : echo $_GET[img]; : : ?> : : ---------------------------------------------- : 方法有二種: : 第一種: : 在列表時,請不要直接把 blob 那個欄位也查出來, : 把圖片的流水號帶給 showPic.php 就好。 : 如:showPic.php?id=3 : 在你的 showPic.php 裡 : <?php : //建立連線 : ... : 查找 SQL where ID = $_GET['id'] : // header : ... : // 輸出圖內容 : echo blob 內容 : 第二種: : 要記得 session_start() 呦 : 既然你已經把 blob 在列表中查出來了,把他寫入 session 吧 XD : $_SESSION['img'] = blob.. : 在 showPic.php 裡,直接 : <?php : //header : ... : // 輸出圖內容 : echo $_SESSION['img']; : 建議不要在資料庫直接存 blob 內容,到最後會很慢~ : 也不好備份或分散 : 以上二個方法,第一種較好 對了~想到還有一招可以用~ $data = base64_encode($row['img']); 然後 <img src="data:image/png;base64,<?=$data;?>"> 這樣也是可以,只是 cpu 會吃較多,然後資料變大 :D -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.110.45.216 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1433332135.A.719.html
MOONRAKER: 每個圖片至少膨脹25% 06/03 20:13
MOONRAKER: (當初那個專案應該用這招整死他們的) 06/03 20:14
shadowjohn: 這是祕密呦(啾咪)~ 06/03 20:36
shadowjohn: b64 會增加 1/3 的大小,約 33.3% 才對 :D 06/03 20:42
MOONRAKER: OHNO沒錯是1/3 06/03 21:51
kensou0012: 關鍵字一下 Src="data:image/jpeg;base64,.... 06/04 01:06
kensou0012: 這樣就一次查詢一次 request 06/04 01:07
kensou0012: 唉唷!我重複了哈哈抱歉 06/04 01:09
fishtw: ie8有32k的資料長度限制 06/04 08:16
gname: Base64 Image 會膨脹文字資料,但可以減少 request 06/04 11:29