显示在 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中文网其他相关文章!