下载图像blob时无法读取(php)

4

我有一个程序,其中的图像存储为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; 

我也尝试过使用echo $image->getimageblob();等方式,以及一些其他的头文件。但结果都一样,图像下载后大小和格式正确,但我无法读取它。

我该如何解决这个问题?

1个回答

5
我找到了答案。我花了大约15个小时来解决它...
虽然,如果有人想知道,解决方案只需要一行代码:
 ob_clean();

输出之前。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接