【发布时间】:2016-12-27 11:38:34
【问题描述】:
我试图在数据库中插入图像,但由于某些原因我无法检索它。我对数据库中的图像使用 BLOB 类型。
我用来上传图片的代码。一旦我将图像保存在数据库中,在“图像”列中,我会得到文件 image-01.bin
if (isset($_POST["submit"]) {
$id= $_GET["id"];
$image = $_POST["image"];
$stmt=$conn->prepare("INSERT INTO db (id, image) VALUES (:id, :image)");
$stmt->bindParam(:id, $id);
$stmt->bindParam(:image, $image);
$stmt->execute();
}
我用来在网页中打印图像的代码。
$stmt = "Select Id, Image from db where id = $id LIMIT 0,1"
$q = $conn->query($stmt);
while ($r = $q ->fetch():
echo "<img src ='",$r[Image],"' width='100' height='100' />";
endwhile;
【问题讨论】:
-
二进制图像数据“在”$_POST['image']?可能,但是……你是怎么做到的?
-
您必须阅读图像内容才能将其放在一个 blob 中......看看stackoverflow.com/questions/23854070/…
-
echo "<img src ='php_with_echo_image.php?id=some_id' width='100' height='100' />";在这个 php 文件中添加适当的 mime 类型 -
不建议用图片数据重载数据库,最好是用图片的url填充数据库,同时把图片存放在你一直知道的文件夹里它的位置。此外,如果您这样做,您可以通过检查其名称来避免重新上传类似的图像(防止用户单击两次上传按钮)。检查此链接w3schools.com/php/php_file_upload.asp 在文件夹中上传图片。
-
您是在数据库中存储实际的图像数据还是只是文件的路径?