こんにちは
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Windows 10 Win10PCのExploreで大量の画像ファイルを表示させる際に、画像の中身を表示させる方法 2 2023/06/12 06:55
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Windows 10 Windows10の画像ファイルのサムネールがアイコン表示になってしまいました。 3 2022/07/09 13:01
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpで画像がどうしても文字化け...
-
透過PNGが透過されない!!
-
imageフォルダに、画像をリサイ...
-
ファイルアップロードのダイア...
-
Illustratorで文字と画像を流し...
-
BLOBデーターの画像の表示方法...
-
アップロード画像数でCSSを分け...
-
phpで画像を保存するときにリサ...
-
phpMyAdminに画像を保存できない
-
libpngでpng操作がうまくいかない
-
PHPで吐き出した画像にリンクを...
-
VBSの「MsgBox」について
-
最も速い画像合成処理を教えて...
-
phpについて
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
phpとaspの違いについて
-
form actionで二つ送信先を指定...
-
PHP8を使うと、大量のWarningが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
PythonのTkinter詳しい方へ。画...
-
VBAでJPGサイズ変更
-
C# Excelファイルへの画像挿入。
-
ListViewコントロールでサムネ...
-
PHPで吐き出した画像にリンクを...
-
php,mysqlにて画像パス保存/表...
-
PHP+PostgreSQLを使ってPDFファ...
-
スマートフォンから画像のアッ...
-
画像にテキストを埋め込むジェ...
-
実行ファイル(exe)に画像ファ...
-
ビットマップ画像を読み込むプ...
-
改行コードのカウント
-
Ajaxで画像表示
-
画像アップロードのファイル名...
おすすめ情報