PHP:imagecreatefromstring
我有一个文件上传类,如果文件上传被认为是图像,它会返回一个图像大小调整对象。image resize类的构造从以下内容开始:PHP:imagecreatefromstring,php,gd2,Php,Gd2,我有一个文件上传类,如果文件上传被认为是图像,它会返回一个图像大小调整对象。image resize类的构造从以下内容开始: $this->resource = imagecreatefromstring($this->getData()); if (!is_resource($this->resource)) { return $this->error(IMAGE_ERR_SOURCE_CREATION_ERROR); } $this->getData()返回从
$this->resource = imagecreatefromstring($this->getData());
if (!is_resource($this->resource)) {
return $this->error(IMAGE_ERR_SOURCE_CREATION_ERROR);
}
$this->getData()
返回从tmp\u name
从$\u FILES[…]
数组中获取内容的文件返回的字符串
问题如下。它在我的开发服务器5.3.0
上运行得非常好,但是imagecreatefromstring()
在生产服务器5.3.5
上失败
为什么??我无法理解,我已经比较了使用base64开发和产品的图像字符串,它们是相同的。从.0
更改为.5
时,我需要看什么
编辑:是,GD2已安装且工作正常。顺便说一句,WordPress(3.1)也安装在这台服务器上,所有的图像功能都正常工作,这也是为什么我如此困惑的原因
编辑2
在调试显示错误后(我知道应该先执行此操作),返回的错误为:
Warning: imagecreatefromstring(): No JPEG support in this PHP build
这是否意味着我必须重新安装支持JPEG的GD,或者它可以在安装后启用,即现在
或$>php-m
),并且配置正确(使用$>php--re-GD
和$>php--ri-GD
)错误报告(E\u ALL)
strace
(如果在linux上)或TraceNT(在windows上)运行它,并查看错误从何处开始PHP安装是否真正支持您尝试使用的图像格式?请检查phpinfo以获得支持的编解码器。您能为我们更准确地定义“失败”吗?数据的图像格式是什么?运行代码$handle=fopen('img.jpg','r');$contents=fread($handle,filesize('img.jpg');$image=imagecreatefromstring($contents);标题(“内容类型:图像/jpeg”);图像jpeg($image);fclose($handle);并测试此函数是否正常工作。我希望我可以。。它只返回false,没有任何错误。函数只返回false..ahhhh。我可能使用了错误报告(E_ALL);但不显示错误。我这方面的巨大失败。。。请参阅更新问题。如果您无法让它编写任何内容(同时检查日志),您必须尝试我的4/5方法。Strace功能非常强大,不过我担心您需要一个精通linux的人(不包括我)。任务完成。:)。关于你的最后一个问题,我不确定,这取决于构建。在我的情况下,我可以替换GD库,但我不确定你的库。我想你可以备份你的GD副本并加入一个新的副本。如果你愿意,你可以上传exe文件,PHP不会抱怨;)。您是否尝试过(从WP)调整它们的大小?WP是聪明的,它可能有一些故障转移-例如,如果通过PHP失败,则通过HTML/CSS调整大小。@Matt WordPress有许多相当聪明的代码,用于在其运行的PHP版本缺少对某些图像函数的支持时,返回到更愚蠢的行为(请参阅WordPress的
WP includes/media.PHP
code)它完全可以上传图像,就像文件一样,而不需要GD对JPEG的支持;WordPress可能正在尽其所能应对这一点(例如,它可能会在页面上显示全尺寸图像,显示大小设置为缩略图大小,而不是重新缩放以生成真实的缩略图)