處理MySQL BLOB 列的映像顯示和附加輸出
在下面提供的程式碼範例中,影像儲存為BLOB 變數正在顯示MySQL資料庫.但是,如果在圖像之前或之後輸出任何附加文本,則會導致顯示錯誤。
<?php include("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(); ?>
要解決這個問題,我們需要了解影像資料被視為二進位流。在圖像之前或之後輸出文字會破壞二進位資料並導致顯示問題。
解決方案是將圖像資料轉換為 Base64 格式並將其嵌入 HTML 圖像標籤中。這種方法允許我們將圖像資料與其他輸出分開。
echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['imageContent'] ) . '" />'; echo 'Hello world.';
雖然這種方法有效,但它對於效能和快取來說並不是最佳的。為了更有效地處理圖像數據,請考慮使用適當的圖像託管服務或資料庫快取機制。
以上是當有其他輸出時,為什麼我的 MySQL BLOB 映像顯示不正確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!