この記事では、PHPヘッダーでのContent-dispositionの使用法を詳しく紹介します。ヘッダーの使用法を知りたい人は参考にしてください。
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 = “コンテンツの配置” “:” 性質の種類 *( ";" 性質-parm ) disposition-type = “添付ファイル” disposition-parm = ファイル名-extension-parm filename-parm = “ファイル名” “=” 引用符付き文字列 disp-extension-token = トークン disp-extension-parm = トークン “= ( トークン | 引用符付き文字列 ) |
上記から、具体的な例がわかります:
Content-Disposition: 添付ファイル名 = "ファイル名.xls"
もちろん、filename パラメーターにはパス情報を含めることができますが、User-Agnet はこの情報を無視し、パス情報の最後の部分のみをファイル名として使用します。応答タイプが application/octet-stream の場合にこのヘッダー情報を使用すると、内容を直接表示するのではなく、「ファイルのダウンロード」ダイアログ ボックスをポップアップ表示して、次のステップを実行することを意味します。 「開く」または「保存」します。
メモ:
1. ブラウザーにダウンロード ダイアログ ボックスが表示されるようにするために、コード内で Content-Disposition が使用されている場合。 response.addHeader("Content-Disposition", "attachment"); ブラウザのキャッシュを無効にする操作を行っていないことを必ず確認してください。以下の通り:
コードは次のとおりです | コードをコピー |
response.setHeader("プラグマ", "キャッシュなし");
response.setHeader("キャッシュ制御", "キャッシュなし");
response.setDateHeader("有効期限", 0); |