【问题标题】:Why getting image via PHP does not work?为什么通过 PHP 获取图像不起作用?
【发布时间】:2010-08-07 12:46:27
【问题描述】:

我在 Windows XP 和 FireFox 3.6.8 上使用 WampServer 2.0 版。

我正在尝试通过这样的 PHP 脚本获取图像内容:

HTML:

<img src='temp_get_file.php' alt='picture not found' />

PHP: (temp_get_file.php)

<?php
header('Content-Type: image/png');
$img = imagecreatefromjpeg("1.png");
imagejpeg($img);
imagedestroy($img);
?>

HTML、PHP 和 1.png 文件位于 WampServer 的 www 目录中。

不幸的是,我收到了这个错误(在 FireFox 的 HTTPFOX 插件中):

Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)

我看到“找不到图片”。

如果我像这样直接将图像放入 HTML 中:

<img src='1.png' alt='picture not found' />

一切正常。

我的 PHP 出了什么问题?

【问题讨论】:

  • 尝试删除 imagedestroy($img)。

标签: php html image src


【解决方案1】:

这可能只是您的示例中的一个问题,但这不起作用:

imagecreatefromjpeg("1.png")
                 ^      ^
               JPEG != PNG

【讨论】:

    【解决方案2】:

    实际上不是用你的 PHP,而是用你的 PHP 技能:)
    一些改进建议

    1. 您必须调试您的应用程序,而不是询问社区。
      为此,您必须
      a) 通过在浏览器地址栏中输入 temp_get_file.php 直接请求您的图像文件,让您看到脚本的输出
      b) 将 Content-Type 标头输出放在代码中尽可能低的位置,以便 PHP 在出现错误时发送 text/html
      c) 在
      上有显示错误 或
      除了以上所有这些,您还可以打开日志记录错误并在错误日志中捕获错误。
      这两种方法都可以让您获得 PHP 错误消息 - 这是您真正需要的东西,而不是无用的 firefox 抱怨。
      而且这个错误信息很清楚 - 错误的文件格式。

    2. 如果这是您的脚本唯一的功能,您就不需要所有这些 GD 函数。那没用。如果您需要将某些文件输出到浏览器,只需执行此操作。 readfile("1.png")就够了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      相关资源
      最近更新 更多