我想顯示存儲在MySql數據庫中的圖像。來自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();
不幸1E示出了帶有紅色叉的塊和Firefox告訴圖像包含錯誤
誰看到溶液?
此答案實際上不正確。 'echo'毫無疑問地發出二進制數據。 – Charles 2011-05-06 20:46:53