こんにちは
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ランキング
-
アップロード画像数でCSSを分け...
-
【PHP】サーバー上で TIFFをJPE...
-
★PHP★画像アップロードの際に余...
-
PythonのTkinter詳しい方へ。画...
-
C#とJavaで、MP3タグの画像を表...
-
C# Excelファイルへの画像挿入。
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
GDの画像変換でサーバーに負荷
-
PHP + MySQL で画像データ表示
-
エクセルでカレンダーマクロの...
-
PHPで半透明画像を作りたい
-
VBSの「MsgBox」について
-
imageフォルダに、画像をリサイ...
-
PostgreSQLのラージオブジェク...
-
<img src="http://x.y.com/cgi-...
-
VBAでJPGサイズ変更
-
PHPによる画像の生成による色の...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
VBAでJPGサイズ変更
-
Illustratorで文字と画像を流し...
-
VBAのコードを教えてください
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
GDI+を使ったビット数とDPIの扱い
-
SQLiteに画像を格納したい
-
ListViewコントロールでサムネ...
-
★PHP?★画像を縦横比を変えずに...
-
ビットマップ画像を読み込むプ...
-
phpで画像がどうしても文字化け...
-
PHPで吐き出した画像にリンクを...
-
phpMyAdminに画像を保存できない
-
OpenGLで描いて画像ファイル出力
-
手作業で埋め込んだ、UserForm1...
おすすめ情報