header で Content-type を指定しても、画像が表示されない - PHPプロ!Q&A掲示板
642
- 0P
- 0P
header で Content-type を指定しても、画像が表示されない
質問日時 / 2007年9月12日 02:56 回答数 / 6件
Questioner: tsingtao
Tweet
キーワード / キーワードが設定されていません
実行環境は、
PHP 5.2.4
Apache 2.0.59
です。
画像のパスを直接表示させるのではなく、PHP ファイル経由で画像を表示したいと考えています。
しかし、画像は表示されません。その代わりに、ブラウザ(Firefox)には、PHPスクリプトの実行
URLが表示されています。
表示されたページを保存して、保存したファイルの拡張子を「.php」から「.jpg」と変更すると
画像として表示されます。
また、開発環境ではなく、実行環境用のサーバーで実行をしてみたところ、実行環境下のサーバーで「Warning: Cannot modify header information - headers already sent by (output started at /var/www/home/public_html//test/index.php:1) in /var/www/home/public_html/test/index.php on line 1」というエラーが表示されます。
エラーが発生している行は、「<?php」としか入力しておらず、何も出力をしていません。
どうしたら、普通に表示されるようになるでしょうか?
PHP 5.2.4
Apache 2.0.59
です。
画像のパスを直接表示させるのではなく、PHP ファイル経由で画像を表示したいと考えています。
しかし、画像は表示されません。その代わりに、ブラウザ(Firefox)には、PHPスクリプトの実行
URLが表示されています。
表示されたページを保存して、保存したファイルの拡張子を「.php」から「.jpg」と変更すると
画像として表示されます。
- $size = filesize("test.jpg");
- $fp = fopen("test.jpg", "rb");
- if ($fp !== false) {
- $img = fread($fp, $size);
- fclose($fp);
- header("Content-Length: $size");
- header("Content-type: image/jpeg");
- print $img;
- exit();
- }
また、開発環境ではなく、実行環境用のサーバーで実行をしてみたところ、実行環境下のサーバーで「Warning: Cannot modify header information - headers already sent by (output started at /var/www/home/public_html//test/index.php:1) in /var/www/home/public_html/test/index.php on line 1」というエラーが表示されます。
エラーが発生している行は、「<?php」としか入力しておらず、何も出力をしていません。
どうしたら、普通に表示されるようになるでしょうか?
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。
ツリー一覧


まずは配列や文字列の扱いから、じっくり勉強して行きましょう。