顯示MySQL 中儲存為BLOB 的影像
尋求擷取資料庫中儲存為BLOB 的影像時,您會遇到正確顯示它們的困難。您的程式碼會擷取資料並將其傳遞給腳本,該腳本將標頭設為 image/jpeg 並回顯影像。但是,您在瀏覽器中看到的是圖像圖標,而不是圖像本身。
要解決此問題,建議您採用修改後的方法:
將影像插入資料庫
// Retrieve image data from a temporary file $image = file_get_contents($_FILES['images']['tmp_name']); // Prepare an SQL statement and bind the image parameter $query = "INSERT INTO products (image) VALUES(?)"; $stmt = $db->prepare($query); $stmt->bind_param('s', $image); // Execute the statement $stmt->execute();
檢索並顯示影像資料庫
// Prepare an SQL statement and bind the ID parameter $sql = "SELECT * FROM products WHERE id = ?"; $stmt = $db->prepare($sql); $stmt->bind_param('s', $id); // Execute the statement and retrieve the result $stmt->execute(); $result = $stmt->get_result(); $row = $result->fetch_array(); // Encode the image data as base64 and embed it in an HTML element echo '<img src="data:image/jpeg;base64,' . base64_encode($row['image']) . '" />';
這種修改後的方法應該使您能夠有效地顯示在MySQL 中儲存為 BLOB 的映像。透過綁定圖像參數並在 HTML 元素中將其編碼為 base64,您可以正確檢索並呈現圖像資料。
以上是為什麼我的 MySQL BLOB 映像無法正確顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!