首頁 >資料庫 >mysql教程 >當有其他輸出時,為什麼我的 MySQL BLOB 映像顯示不正確?

當有其他輸出時,為什麼我的 MySQL BLOB 映像顯示不正確?

Susan Sarandon
Susan Sarandon原創
2024-11-24 05:34:13887瀏覽

Why Does My MySQL BLOB Image Display Incorrectly When Other Output Is Present?

處理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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn