HTTP :: Content-Disposition: inline / attachment

例えば、ブラウザで jpeg ファイルを表示させるのでなく、ダウンロードさせたい場合、
HTTPヘッダー「Content-Disposition: attachment」を送出します。

Content-Disposition ヘッダー について

<Content-Disposition> ヘッダーフィールドを使用することによって、メッセージの内容を添付ファイル(Attachment)として表示するか、インライン(Inline)データとして表示するかを提唱します。

inline は、メッセージ(全体)を表示するときに、この内容も即座に表示すべきであることを意味します。inline は、Multipart メッセージに登場するのと同じ順番で表示するべきです。

attachment は、メールメッセージの本文から離された 「付属物」(”Attachment”)であることを指定します。attachment は、ユーザーに何かのアクションを起こさせてから表示するべきあり、メッセージ(全体)を表示するときに、即座に内容を展開して表示するべきではありません。

上記は、IBMの「RFC 1806: Content-Disposition ヘッダーについて(概要)」から引用。


jpeg ファイルをダウンロードさせる例 (PHP)

<?php
 
$fpath = '/path/to/sample.jpg'; // ファイルパス
$fname = 'sample.jpg';          // ファイル名
 
header('Content-Type: image/jpeg');
header('Content-Length: '.filesize($fpath));
header('Content-Disposition: attachment; filename="'.$fname.'"');
echo file_get_contents($fpath);
exit;
 
?>