0

我在 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 文件位于wwwWampServer 的目录中。

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

Error loading content (NS_ERROR_DOCUMENT_NOT_CACHED)

我看到“找不到图片”。

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

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

一切正常。

我的 PHP 有什么问题?

4

2 回答 2

5

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

imagecreatefromjpeg("1.png")
                 ^      ^
               JPEG != PNG
于 2010-08-07T04:27:32.690 回答
1

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

  1. 您必须调试您的应用程序而不是询问社区。
    为此,您必须
    a) 通过在浏览器地址栏中键入 temp_get_file.php 直接请求您的图像文件,以让您看到脚本的输出
    b) 将 Content-Type 标头输出放在代码中尽可能低的位置,让 PHP 发送 text/html 以防出现一些错误
    c) 显示错误

    代替上面所有这些,您可以打开日志记录错误并在错误日志中捕获错误。
    这两种方法都可以让你得到 PHP 错误信息——这是你真正需要的东西,而不是无用的 firefox 抱怨。
    并且此错误消息非常清楚 - 错误的文件格式。

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

于 2010-08-07T04:46:27.217 回答