• 締切済み

Content-Disposition: inlineの必要性?

下記の例で、exampe.jpgをindex.htmlに、index.phpを介して、読み込ませる(表示する)場合、私が参考にしたコードではindex.phpのコードは以下の例のようになりますが(ちゃんと動作します)、なぜ「header("Content-Disposition: inline; filename=" . "example.jpg");」がindex.phpに必要なのか分かりません(どのような働きをしているのか?)。 私の場合、index.htmlからexample.jpgをダウンロードさせることは想定しておらず、ただexampe.jpgをindex.htmlに表示させたいだけです(実際には、example.jpgのダウンロード等を防ぐ目的の一部としてexample.jpg をcacheさせないためにindex.phpを利用しています。)。この場合でもやはり「header("Content-Disposition: inline; filename=" . "example.jpg");」がindex.phpに記述されていたほうが良いのでしょうか? 例: ディレクトリ構成(/var/www/htmlが公開ディレクトリ) /var/www/html/example.jpg /var/www/html/index.html /var/www/html/index.php - index.html: <img src="index.php" width="100" height="100" border="0"> - index.php: header("Content-type: image/jpeg"); header("Content-Disposition: inline; filename=" . "example.jpg"); header("Content-length: " . filesize("example.jpg")); readfile("example.jpg"); しかし、実際には、 - index.php: header("Content-type: image/jpeg"); header("Content-length: " . filesize("example.jpg")); readfile("example.jpg"); のように「header("Content-Disposition: inline; filename=" . "example.jpg");」なしでもexample.jpgはちゃんとindex.htmlに表示されます。 この質問に関連する情報が記載されたサイト等も、ご存知でしたらURLをお教えください。 よろしくお願いします。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 元々Content-Disposition HTTPヘッダーはマルチパートメッセージの中でインラインか添付かを指定するためのもので、今回のようにindex.phpが出力するコンテンツが単体のJPEG画像である場合は何の意味も持ちません。 > なぜ「header("Content-Disposition: inline; filename=" > . "example.jpg");」がindex.phpに必要なのか分かりません  私の記憶にある限りで唯一思いつくのは、古いInternet Explorerでは「Content-Disposition無指定(あるいはAttachment)」と「キャッシュさせない」という組み合わせの場合にエラーが起きる可能性があるというくらいでしょうか。ただ、これもテキストファイルやエクセルファイルなどの場合であって、画像の場合に起こるかどうかは分かりません。 古いIE:書いた方が良いかも知れないと言えなくもない可能性も否定できない。 それ以外:書いても書かなくても良い。 という2点で検討すると、それ以外に書いて損がないのであれば書いた方が良いのかも知れないですね。

kitty1000
質問者

お礼

anmochiさん ご回答、ありがとうございました。 参考にさせて頂きます。

関連するQ&A