【问题标题】:imagecreatefrompng() failed to open stream: HTTP request failedimagecreatefrompng() 无法打开流:HTTP 请求失败
【发布时间】:2011-09-17 20:51:27
【问题描述】:

在我的本地主机上,这段代码运行良好:

$im = imagecreatefrompng('BBcode.png');

但是当我在服务器中使用相同的代码时

$im = imagecreatefrompng('http://lazertag.elitno.net/drupal/BBcode.png');

我收到以下错误:

警告: imagecreatefrompng(http://lazertag.elitno.net/drupal/BBcode.png) [function.imagecreatefrompng]:无法打开流:HTTP 请求 失败的! HTTP/1.1 403 禁止在 /www/elitno.net/l/a/lazertag/home/site/drupal/renderImage.php 上线 46

我该如何解决这个问题?

【问题讨论】:

  • HTTP request failed! HTTP/1.1 403 Forbidden 很清楚,不是吗?

标签: php image-processing gd imagecreatefrompng


【解决方案1】:

如果文件在您的服务器上,请使用(相对)系统路径,而不是 url: 例如:

$im = imagecreatefrompng('drupal/BBcode.png');

【讨论】:

    【解决方案2】:

    在使用 imagecreate 之前,您可以将远程图像下载到本地文件夹然后处理它吗?!

    你的前任:

    $imagefile = file_get_contents('http://lazertag.elitno.net/drupal/BBcode.png');
    $fp  = fopen('./BBcode.png', 'w+'));
    fputs($fp, $imagefile);
    fclo$fp);
    unset($imagefile);
    $im = imagecreatefrompng('./BBcode.png');
    

    【讨论】:

    • fclose(...) 行中缺少字母
    • 这是我的服务器,我要使用的文件已经存储在我的服务器上。
    • @alexey 然后找出它返回 403 的原因并修复它(或使用@scessor 建议的文件路径)
    【解决方案3】:

    403 Forbidden 表示服务器阻止您访问该文件。你可以尝试做一个 file_get_contents("http://....");确实会收到一条错误消息,可能是该网站的创建者放置了一条错误消息,否则您必须与他们交谈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-21
      • 2023-01-01
      • 2013-07-06
      • 2016-06-02
      • 2011-05-31
      • 2012-12-31
      相关资源
      最近更新 更多