3 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以將圖像數(shù)據(jù)轉(zhuǎn)換為base64并將其粘貼在<img>標(biāo)簽中。當(dāng)前,您正在嘗試在圖像數(shù)據(jù)之外寫(xiě)入文本,并且Internet瀏覽器認(rèn)為您的文本是圖像的一部分,因此會(huì)引發(fā)錯(cuò)誤。
嘗試這樣的事情:
echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />';
echo 'Hello world.';
請(qǐng)注意,這不是最佳解決方案,因?yàn)樗鼰o(wú)法緩存且速度相當(dāng)慢,尤其是在手機(jī)上。檢出Caniuse以獲得數(shù)據(jù)URI。

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
好吧...之所以會(huì)執(zhí)行您描述的操作的原因是因?yàn)槟褂昧薶eader()函數(shù)。在PHP中,您無(wú)法在標(biāo)頭調(diào)用之前打印任何內(nèi)容,因?yàn)檫@會(huì)指示W(wǎng)eb服務(wù)器準(zhǔn)備內(nèi)容標(biāo)頭。通常,這些內(nèi)容將完全取代所有內(nèi)容。
其次,我想提一下,將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中通常是一個(gè)壞主意,這有兩個(gè)原因。
它對(duì)性能和渲染有重大影響。
您必須編寫(xiě)代碼來(lái)呈現(xiàn)Blob數(shù)據(jù),而不僅僅是顯示圖像本身。
數(shù)據(jù)庫(kù)驅(qū)動(dòng)的圖像表示的首選方法是將圖像存儲(chǔ)在目錄中,并將文件名存儲(chǔ)在數(shù)據(jù)庫(kù)中。現(xiàn)在,當(dāng)您希望顯示圖像時(shí),只需要輪詢數(shù)據(jù)庫(kù)以獲取要顯示的文件名,然后只需將文件名包含到HTML屬性中即可。
執(zhí)行速度也快得多。
另外,我想指出的是,如果您希望腳本實(shí)際執(zhí)行渲染,則希望該腳本定義標(biāo)題,然后在定義標(biāo)題后回顯或打印圖像斑點(diǎn)。
請(qǐng)注意,當(dāng)您創(chuàng)建html標(biāo)記時(shí)...在src屬性中,則應(yīng)使其更像這樣;
<img src="image.php?id=<some_number>">
現(xiàn)在,您的image.php文件將把圖像數(shù)據(jù)吐出到標(biāo)簽中。
添加回答
舉報(bào)