ホームページ  >  記事  >  php教程  >  ヘッダー内の Content-Disposition の役割と使用法

ヘッダー内の Content-Disposition の役割と使用法

WBOY
WBOYオリジナル
2016-06-13 11:59:541536ブラウズ

Content-disposition は MIME プロトコルの拡張機能であり、MIME ユーザー エージェントに添付ファイルの表示方法を指示します。 content-disposition は、要求されたコンテンツがファイルとして保存されるとき、またはアクセス中にファイルのダウンロード ダイアログ ボックスがポップアップするときに、ユーザーがデフォルトのファイル名を指定するように実際に制御できます。

形式の説明:
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )

フィールドの説明:
Content-Disposition は属性名です
disposition-type はダウンロード方法です。たとえば、添付ファイルは添付ファイルとしてダウンロードされます
disposition-parm は保存時のデフォルトのファイル名です
サーバーがクライアントのブラウザにファイルを送信するとき、そのファイルがブラウザでサポートされているファイル タイプであれば、通常、txt、jpg などのファイルはデフォルトでブラウザによって開かれ、直接表示されます。ユーザーに保存を求めるメッセージが表示される必要がある場合は、処理に Content-Disposition を使用するには、添付ファイルを追加することが重要です:

コード コードは次のとおりです。


Response .AppendHeader("Content-Disposition","attachment;filename=FileName.txt");


注: この方法では、を選択すると、ブラウザーで保存するか開くかを尋ねられます。開くことを選択した場合でも、IE ではなく、メモ帳などの関連プログラムが開きます。
Content-Disposition は、ユーザーが要求されたコンテンツをファイルとして保存する場合に、デフォルトのファイル名を提供します。具体的な定義は次のとおりです。

コードをコピー コードは次のとおりです。


content-disposition = "Content-Disposition " ":"
disposition-type *( ";" disposition-parm )
disposition-type = "attachment" | disp-extension-token
disposition-parm = filename-parm | disp-extension- parm
filename -parm = "filename" "=" quote-string
disp-extension-token = token
disp-extension-parm = token "=" ( token | quote-string )



具体的な例は上記から見ることができます:

Content-Disposition:attachment; filename="filename.xls"
もちろんfilename パラメーターにはパス情報を含めることができますが、User -Agnet はこの情報を無視し、パス情報の最後の部分のみをファイル名として使用します。応答タイプが application/octet-stream の場合にこのヘッダー情報を使用すると、コンテンツを直接表示するのではなく、「ファイルのダウンロード」ダイアログ ボックスをポップアップ表示し、次のステップはユーザー次第であることを意味します。 「開く」または「保存」します。

注:

1. コード内で Content-Disposition を使用して、ブラウザーにダウンロード ダイアログ ボックスが表示されるようにする場合。 response.addHeader("Content-Disposition", "attachment"); ブラウザのキャッシュを無効にする操作を行っていないことを必ず確認してください。次のように:

コードをコピー コードは次のとおりです:


response.setHeader("Pragma", "No-cache ");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);


それ以外の場合は、ダウンロード機能は Opera にあり、Firefox では正常に動作しますが、IE では動作しません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。