小编veb*_*bbi的帖子

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

我有一个程序,其图像存储为 MySQL 数据库中的 blob,除了我的下载链接外,它运行良好。它按应有的方式下载,并且大小也合适,但图像不显示。

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

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

$data = file_get_contents($image);
Run Code Online (Sandbox Code Playgroud)

然后我将 PDO 用于 MySQL 连接:

$q->bindParam(2, $data, PDO::PARAM_LOB);
Run Code Online (Sandbox Code Playgroud)

这在使用 base64 时工作正常。

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

但这是我的问题。

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

我也试过 echo $image->getimageblob(); 等等......以及其他一些标题。但结果是一样的,图像下载,是正确的大小和格式,但我无法阅读。

我该如何解决这个问题?

blob image header download gmagick

4
推荐指数
1
解决办法
482
查看次数

标签 统计

blob ×1

download ×1

gmagick ×1

header ×1

image ×1