所以我在Mountain Lion上运行MAMP并且我已经使用pecl安装了gmagick和imagick,两者都是相关候选者(主要是因为gmagick没有稳定版本而且想象力3.0.0没有安装,它给出了一个make错误).当我在终端中运行php -i但不在phpinfo()中时出现模块,我检查了php.ini两者都是一样的,所以这不是问题.但是我已经安装了bitset(这是一个稳定的版本) )它出现在phpinfo()和php -i中.所以我的问题是PHP有没有任何配置选项,如果它们不稳定,它们不会加载扩展?顺便说一句,在更改了ini文件后,我确实重启了我的服务器.
我有一个程序,其图像存储为 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(); 等等......以及其他一些标题。但结果是一样的,图像下载,是正确的大小和格式,但我无法阅读。
我该如何解决这个问题?