
こんにちは
Apache2.2、php5を使用しています。
ブラウザに画像を表示させたいのですが、URLで直接画像ファイルを指定するとファイルの場所を見せてしまうので、非公開のディレクトリの画像を表示させるようにphpのプログラムを呼び出して(引数をファイル名)にしています。
画像が「X」の状態で表示されません。(涙
header('Content-Type: ' . 'image/jpeg');
header('Content-transfer-encoding: binary');
header('Content-length: ' . filesize(/.../../$fileName));
header('Content-Disposition: attachment; filename="' . $fileName . '"');
のあとで、fopen() ->> fpassthru();で処理したのですが、小さい画像ファイルは処理は終わっていますが、「X」の状態で表示されて、大きい画像ファイルを指定するとfpassthru()の中で死んでしまいます。
fread ->> print ->> flush()ループで処理すると、flushの中で死んでしまいます。
error.logにも特に情報が残っていないので...
何かご存知の方はいらっしゃいませんか?
よろしくお願いします。

No.2ベストアンサー
- 回答日時:
>ご指摘頂いたのHeaderは修正しましたが、画像は「X」の状態で...
>URLでファイルを指定するといまくいくのですが...
画像を吐き出すPHPファイルのURLを、ブラウザのアドレスバーに直接入力した場合はうまくいくけれども、そのURLをHTML内のimgタグのsrc属性に指定した場合はダメということでしょうか?
そうであれば、単なるHTMLの書き間違えか、PHP内でリファラーで何か処理を変えているくらいしか思いつきません。
この回答への補足
>URLでファイルを指定するといまくいくのですが...
これは、URLでファイルを指定するといまくいくが、PHPで吐き出すとうまくいかないって意味で書きました。
分かりにくくてすいません。
phpで吐き出す前に、セキュリティ関係の処理phpを呼んでいたので、その処理の前で強引にfile_get_contents( )するとうまくいく事がわかりました。いまだに本当の原因は判明しておりませんが、あとはなんとかなると思います。
お騒がせして申し訳ありませんでした。fdsjaklfjasさんの過去の回答も参考にさせて頂きました。
たいへんありがとうございました。

No.1
- 回答日時:
ヘッダの設定が怪しいと思います。
header('Content-length: ' . filesize(/.../../$fileName));
→ご質問の問題の原因はコレだと思います。パスがおかしくないですか? Content-Lengthヘッダが0になりませんか?
header('Content-transfer-encoding: binary');
→HTTP1.1では廃止されていますし、一般的には付けないと思います。
header('Content-Disposition: attachment; filename="' . $fileName . '"');
→このケースでは、このヘッダはいらないと思います。
>fopen() ->> fpassthru();
readfile関数だと一行ですみますよ。せっかくPHP使っているのだったら、ラクしないと損です。
この回答への補足
回答ありがとうございます。
質問の書き方がわるくて申し訳ありません。
header('Content-length: ' . filesize(/.../../$fileName));
これは、実際には正常にファイルを記述しています。
ご指摘頂いたのHeaderは修正しましたが、画像は「X」の状態で...
URLでファイルを指定するといまくいくのですが...
file_get_contents( )やreadfile( )に変えると処理は正常に終了するようになりました。
でも、画像は「X」の状態から変わらないのです...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでJPGサイズ変更
-
SQLiteに画像を格納したい
-
画像リストを作りたい
-
'member_picture/'に/がありま...
-
CGIが、aタグで呼ばれたか、img...
-
VBSの「MsgBox」について
-
ウィンドウサイズを取得して、p...
-
PythonのTkinter詳しい方へ。画...
-
手作業で埋め込んだ、UserForm1...
-
PHPのif文でその処理を途中で抜...
-
basp21 Proでのメールの暗号化...
-
FTPコマンドでディレクトリごと...
-
sql文について質問です。エラー...
-
URLの変わらないページをPHPで...
-
mamp環境でのcronの使い方で困...
-
【file_exists】ファイルが存在...
-
さくらインターネットでメール...
-
DUMPした巨大SQLファイルをイン...
-
tplを読みに行けません。
-
Smarty tpl内のifの書き方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
拡張子php画像をjpg画像等に変...
-
Illustratorで文字と画像を流し...
-
VBSの「MsgBox」について
-
ビットマップ画像を読み込むプ...
-
VBAでJPGサイズ変更
-
php,mysqlにて画像パス保存/表...
-
SQLiteに画像を格納したい
-
GDI+を使ったビット数とDPIの扱い
-
透過PNGが透過されない!!
-
PHPで吐き出した画像にリンクを...
-
手作業で埋め込んだ、UserForm1...
-
C#とJavaで、MP3タグの画像を表...
-
PHPで画像アップロード時にサイ...
-
画像リストを作りたい
-
GD(php)での image関数 イメ...
-
pictureboxに表示した画像のフ...
-
JSPにてMySQLのBLOB型の画像の...
-
DBに格納された画像データを縮...
-
iphoneで虫眼鏡の作り方
-
C# Excelファイルへの画像挿入。
おすすめ情報