PHP:imagecreatefromstring

时间:2011-03-30 09:56:53

标签: php gd2

我有一个文件上传类,如果文件上传被认为是图像,则会返回图像调整大小对象。图像大小调整类的结构以此开头:

$this->resource = imagecreatefromstring($this->getData());

if (!is_resource($this->resource)) {
  return $this->error(IMAGE_ERR_SOURCE_CREATION_ERROR);
}

$this->getData()tmp_name数组返回$_FILES[..]的file_get_contents返回的字符串。

承诺如下。它在我的开发服务器5.3.0上完全正常,但imagecreatefromstring()在生产服务器5.3.5上失败。

为什么呢?我无法理解它,我使用base64比较了开发和产品的图像串,它们是相同的。我需要查看从.0更改为.5的内容?

编辑:是的,GD2已安装且工作正常。顺便说一句,WordPress(3.1)也安装在这台服务器上,所有图像功能都正常工作,这也是我很困惑的原因。

修改2

使用display_errors进行调试后(我知道应该先完成此操作),返回的错误是:

Warning: imagecreatefromstring(): No JPEG support in this PHP build

这是否意味着我必须重新安装带有JPEG支持的GD,或者它可以在安装后立即启用,IE吗?

1 个答案:

答案 0 :(得分:2)

  1. 确保您在生产服务器上使用GD(使用<?php phpinfo(); ?>$> php -m)且配置正确(使用$> php --re GD$> php --ri GD)。
  2. 在生产服务器上启用显示错误(暂时)
  3. 如果[2]失败,请使用error_reporting(E_ALL)
  4. 在生产服务器上通过SSH运行脚本测试用例并查看它是否也失败(应该)
  5. 使用[4],通过strace(如果在linux上)或TraceNT(在Windows上)运行它,看看错误从哪里开始。