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。

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)簽中。
添加回答
舉報