【问题标题】:Imagecreatefrompng() - Connection was reset errorImagecreatefrompng() - 连接被重置错误
【发布时间】:2012-02-19 10:33:34
【问题描述】:

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

$src = imagecreatefrompng($s);

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

$src = @imagecreatefrompng($s);

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

有人有想法吗?

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

【问题讨论】:

  • 嘿欧内斯特,这听起来不像是由 GD 引起的。您能否尝试编写一个基本的 GD php 文件来查看问题是否仍然存在?尝试类似这里的示例:php.net/manual/en/function.imagestring.php
  • 您是否从远程服务器获取图像?如果是这样,您应该首先使用imagecreatefromstring(file_get_contents($s));。 (php.net/manual/en/function.imagecreatefromstring.php)
  • Shai Mishali:我已经尝试了您链接的站点的第一个示例,结果是成功的。
  • Quasdunk - 文件在本地服务器上。
  • @ErnestMarcinko 请确保您在脚本顶部有error_reporting(E_ALL); ini_set('display_errors', 1);,看看您是否收到更多有用的错误消息

标签: php image function imagecreatefrompng


【解决方案1】:

嗯,如果您无法通过命令行访问服务器,您可能会很头疼。想到的两件事:

  1. 这不太可能,但可能libpng 没有安装,或者 gd 未在编译时使用 PNG 支持。在浏览器中运行 phpinfo() 并查找 gd 部分,您应该会在此处看到 PNG support 'enabled'
  2. 图片可能不是PNG图片!我知道这很古怪,但是这些事情可能会发生,只是命名一个文件 .png 并不能生成 PNG 文件,哈哈。如果您有ImageMagick,您可以使用identify 程序进行检查,这是从我的笔记本电脑上运行的:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    相关资源
    最近更新 更多