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 ファイルはwww、WampServer のディレクトリにあります。

残念ながら、次のエラーが発生しました (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 に答える