下载时图像blob不可读(php)

时间:2012-11-05 12:13:32

标签: image header download blob gmagick

我有一个程序,在MySQL数据库中将图像存储为blob,除了我的下载链接外,它的工作正常。它按照应有的方式下载,并且尺寸合适,但图像不显示。

上传时主要是处理图像的方式:

$image = $_FILES['image']['tmp_name'];

$data = file_get_contents($image);

然后我使用PDO进行MySQL连接:

$q->bindParam(2, $data, PDO::PARAM_LOB);

使用base64时可以正常工作。

$image = new Gmagick();
$image->readimageblob($data);
<img src="data:image/'.$ext.';base64,'.base64_encode($image->getimageblob()).'" />';

但这是我的问题。

header('Content-Disposition: attachment; filename='.$regnr.'-'.$id.'.'.$ext;
header("Content-type: image/$ext");
header("Content-length: $size");
echo $data; 

我也试图回应$ image-&gt; getimageblob();这样......以及其他一些标题。但结果是相同的,图像下载,是正确的大小和格式,但我无法阅读。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

我找到了答案。我想我用了大约15个小时..

虽然如果有人想知道,解决方案只是一个简单的界限:

 ob_clean();

输出前。