Я пытаюсь отобразить изображение, которое хранится в базе данных MySql.
У меня есть следующая таблица
CREATE TABLE `Pictures` (
`Id` varchar(36) character set utf8 NOT NULL,
`Name` varchar(100) character set utf8 NOT NULL,
`Type` varchar(25) character set utf8 NOT NULL,
`Size` varchar(25) character set utf8 NOT NULL,
`Picture` mediumblob NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB;
Код php имеет следующую структуру
Repostory
- Сервис
- - Image.php
Хранилище
public static function GetPictureById($id)
{
global $db;
$d = $GLOBALS["db"];
$result = $d->prepare("SELECT * FROM Pictures WHERE id = :id");
$result->bindParam(":id", $id, PDO::PARAM_STR, 36);
if($result->execute() !== true)
{
Pre($result->errorInfo());
return;
}
$result->bindColumn("Id", $id);
$result->bindColumn("Type", $type);
$result->bindColumn("Size", $size);
$result->bindColumn("Picture", $picture, PDO::PARAM_LOB);
while($result->fetch(PDO::FETCH_BOUND))
{
$pic = new Picture();
$pic->SetId($id);
$pic->SetType($type);
$pic->SetSize($size);
$pic->SetPicture($picture);
}
return $pic;
}
Услуги
public static function GetPictureById($id)
{
return PictureRepository::GetPictureById($id);
}
image.php
error_reporting(E_ALL);
$root = $_SERVER["DOCUMENT_ROOT"]."/new";
include_once($root . "/Config/Config.php");
$picture = PictureRepository::GetPictureById($_GET["id"]);
header("Content-type:". $picture->GetType());
echo $picture->GetPicture();
к сожалению, IE показывает блок с красным крестом, а Firefox сообщает, что изображение содержит ошибки
Кто видит решение?