第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

顯示存儲在mysql blob中的圖像

顯示存儲在mysql blob中的圖像

GCT1015 2019-10-21 12:49:55
當(dāng)我運行下面的代碼時,它顯示一個圖像,該圖像作為blob變量存儲在mysql Db中。問題是我是否回聲了其他任何東西,甚至像echo'--------'這樣簡單的東西;在我調(diào)用圖像之前,圖像將不會顯示。僅顯示隨機字符。如果我在圖像顯示后回聲了什么,但圖像顯示后卻什么也沒有。有人可以告訴我為什么嗎,以及我如何一起顯示其他項目和圖像,謝謝<?phpinclude("inc/library.php");connectToDatabase();$sql = "SELECT * FROM theBlogs WHERE ID = 1;";$result = mysql_query($sql) or die(mysql_error());  $row = mysql_fetch_array($result);header("Content-type: image/jpeg");echo $row['imageContent'];$db->close();?>
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經(jīng)驗 獲得超8個贊

您可以將圖像數(shù)據(jù)轉(zhuǎn)換為base64并將其粘貼在<img>標(biāo)簽中。當(dāng)前,您正在嘗試在圖像數(shù)據(jù)之外寫入文本,并且Internet瀏覽器認為您的文本是圖像的一部分,因此會引發(fā)錯誤。


嘗試這樣的事情:


echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />';

echo 'Hello world.';

請注意,這不是最佳解決方案,因為它無法緩存且速度相當(dāng)慢,尤其是在手機上。檢出Caniuse以獲得數(shù)據(jù)URI。


查看完整回答
反對 回復(fù) 2019-10-21
?
蝴蝶刀刀

TA貢獻1801條經(jīng)驗 獲得超8個贊

好吧...之所以會執(zhí)行您描述的操作的原因是因為您使用了header()函數(shù)。在PHP中,您無法在標(biāo)頭調(diào)用之前打印任何內(nèi)容,因為這會指示W(wǎng)eb服務(wù)器準(zhǔn)備內(nèi)容標(biāo)頭。通常,這些內(nèi)容將完全取代所有內(nèi)容。


其次,我想提一下,將圖像存儲在數(shù)據(jù)庫中通常是一個壞主意,這有兩個原因。


它對性能和渲染有重大影響。

您必須編寫代碼來呈現(xiàn)Blob數(shù)據(jù),而不僅僅是顯示圖像本身。

數(shù)據(jù)庫驅(qū)動的圖像表示的首選方法是將圖像存儲在目錄中,并將文件名存儲在數(shù)據(jù)庫中?,F(xiàn)在,當(dāng)您希望顯示圖像時,只需要輪詢數(shù)據(jù)庫以獲取要顯示的文件名,然后只需將文件名包含到HTML屬性中即可。


執(zhí)行速度也快得多。


另外,我想指出的是,如果您希望腳本實際執(zhí)行渲染,則希望該腳本定義標(biāo)題,然后在定義標(biāo)題后回顯或打印圖像斑點。


請注意,當(dāng)您創(chuàng)建html標(biāo)記時...在src屬性中,則應(yīng)使其更像這樣;


<img src="image.php?id=<some_number>">

現(xiàn)在,您的image.php文件將把圖像數(shù)據(jù)吐出到標(biāo)簽中。


查看完整回答
反對 回復(fù) 2019-10-21
  • 3 回答
  • 0 關(guān)注
  • 868 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號