PHPやPerlで、画像などをそのまま表示せず、ファイル保存ダイアログを出させる方法。
↓こういうヘッダをかき出す。
Content-Disposition: attachment; filename="sample.jpg"
Perl例
#-- ダウンロードさせる元ファイル
$source = '/home/tatsuya/data/img/00001.jpg';
#-- 保存時のファイル名(デフォルト)
$filename = 'uetoaya.jpg';#-- HTTPヘッダ送信
print qq|Content-type: image/jpeg\n|;
print qq|Content-Disposition: attachment; filename="$filename"\n|;
print qq|\n|;
#-- ファイルを読み込んで出力
open(FILE,"$source");
while(){print;}
close(FILE);
PHP例
// ダウンロードさせる元ファイル
$source = '/home/tatsuya/data/img/00002.jpg';
// 保存時のファイル名(デフォルト)
$filename = 'aibusaki.jpg';// HTTPヘッダ送信
header("Content-type: image/jpeg");
header("Content-Disposition: attachment; filename=\"{$filename}\"");
// ファイルを読み込んで出力
readfile($source);
参考:http://www.abe-tatsuya.com/web_prog/perl_cgi/content_disposition.php