2

我在网站上安装了一段代码,其中包括 gd 功能。经过调试,我得出的结论是

$src = imagecreatefrompng($s);

导致服务器响应:“连接已重置”即使我将代码更改为:

$src = @imagecreatefrompng($s);

发生同样的错误。我检查了 php 版本,检查了是否安装并启用了 gd 库,但一切正常。error_log 中没有任何内容。还有,文件路径没问题,文件存在,其他函数可以访问该文件(如fopen或file_get_contents),所以权限没有问题。

有人有想法吗?

编辑:该文件位于本地服务器上。

4

1 回答 1

1

嗯,如果你不能通过命令行访问服务器,你可能会很头疼。想到的2件事:

  1. 这不太可能,但可能没有安装libpng ,或者gd没有编译 w/PNG 支持。从浏览器运行phpinfo()并查找gd部分,您应该会在那里看到PNG 支持“启用”
  2. 该图像可能不是PNG图像!我知道这很古怪,但这些事情可能会发生,只是将文件命名为.png并不会生成 PNG 文件,哈哈。如果你有ImageMagick,你可以使用识别程序来检查,这是我笔记本电脑上的一个运行:

    $ 识别 ~/transparent-pixel.png ~/transparent-pixel.png PNG 1x1 1x1+0+0 8 位 DirectClass 2.79KB 0.010u 0:00.009

您可能可以使用其他一些程序来验证图像确实是 PNG。

最后,我建议让您的脚本在模拟服务器的本地环境(如 VM 或类似环境)中工作。这应该可以帮助您找到服务器上的问题,而不会遇到很多令人头疼的问题。

于 2012-01-29T18:45:45.387 回答