我知道这里已经问过几次,但根据其他问题无法弄清楚如何解决这个问题。
我正在尝试显示MySQL数据库中表格的所有图像。图像都已成功存储为BLOB。 image_type
也正确存储为image/jpeg
或image/png
但是,在尝试显示图片时,它只返回一个损坏的图片图标。当我删除标题时,它会显示一堆字符。我很擅长使用PDO,之前从未使用过数据库中的图像。任何帮助将不胜感激。
<?php
/*** connect to the database ***/
$dbh = new PDO("mysql:host=localhost;dbname=db", 'user', 'pass');
/*** set the PDO error mode to exception ***/
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*** The sql statement ***/
$sql = "SELECT image, image_type FROM images";
/*** prepare the sql ***/
$stmt = $dbh->prepare($sql);
/*** exceute the query ***/
$stmt->execute();
/*** set the fetch mode to associative array ***/
$stmt->setFetchMode(PDO::FETCH_ASSOC);
/*** set the header for the image ***/
$array = $stmt->fetch();
/*** check we have a single image and type ***/
if(sizeof($array) == 2) {
/*** set the headers and display the image ***/
header("Content-type: ".$array['image_type']);
/*** output the image ***/
echo $array['image'];
} else {
throw new Exception("Out of bounds Error");
}
?>