我正在尝试创建图片的缩略图,但是,我可以很好地显示它,但无法保存。
例如:
$image = new Imagick("photo.png");
$image->thumbnailImage(100, 0);
header("Content-Type: image/png");
echo $image;
这实际上会以缩略图的形式显示我的图像。但是,如果我尝试使用$image->writeImage("thumb_photo.png")
保存它,则脚本似乎停止(我通过放置echo Hello
或之后的任何内容确认了这一点)并且没有创建任何文件。
我在Debian Wheezy,nginx和PHP设置的服务器上使用它。目录和PHP文件本身是可读,可写的,并且对图像和PHP文件本身都具有执行权限。 imagick模块版本是3.10。 PHP版本是5.4。
如果有人能告诉我问题是什么,我会很感激。
编辑:收到异常后,我会看到WriteBlob Failed "thumb_photo.png" @ error/png.c/MagickPNGErrorHandler/1728
。
另一件事,显然如果我将输出从“thumb_photo.png”更改为“photo.png”它可以工作,但是会覆盖我的图像,我怎么能绕过这个呢?为什么它会让我覆盖我的图像而不是创建一个新的?
答案 0 :(得分:2)
显然我忘记将组更改为文件路径的文档根目录上的www-data
。我还需要添加chmod -R g+s
。去图。
答案 1 :(得分:0)
我发现如果不存在www-data,你可以将所有权更改为apache:apache并让我保存到该文件夹。我使用的是Centos 7,标准的php / mysql。