WEB相談室
Webページ作成に関しての何でも掲示板です。
タイトル:必ずダウンロードになるContent-typeは?
すが [WriteDate : Thu Dec 7 18:33:42 2000]
いつもお世話になっています。
CGI(perl)からCSVファイルを標準出力すると、ブラウザやPCの環境によって、ダウンロードのダイアログが出るケースとブラウザ内に表示してしまうケースがあります。
(CSVファイルを標準出力時、コンテントタイプは、いろいろやりました。)
右クリックのファイルの保存でなく、左クリック一発で、つねにダウンロードのダイアログを出すには、どうすればいいですか?
もしかしたら、不可能かも...。
よろしくお願い致します。
ひよこ [MAIL] [WriteDate : Thu Dec 7 19:08:41 2000]
ファイル名の拡張子から各PCが関連付けを判断していると思います。
ですから、普通あり得ない拡張子にすればできませんか?
あとユーザーがリネームするという手間がかかりますが。
ふじ [URL] [WriteDate : Thu Dec 7 19:44:48 2000]
> ファイル名の拡張子から各PCが関連付けを判断していると思います。
少なくとも NN では、サーバから送られて来た Content-Type ヘッダを信用するはず。
IE は、Content-Typeを無視して(なんでやねん)、データの先頭数KB(確か)を自力で解析して判断するそうです。
# 個人的には余計なお節介だと思うが。
で、
> つねにダウンロードのダイアログを出すには
ですが、Content-Disposition ヘッダを使って、
Content-disposition: attachment;filename="hoge.csv"
としてやれば、NN の最近のと IE5 以降はダウンロードダイアログを開いてくれると思います。
# ただ、IE5.5SP? でダイアログが開かなくなったとかいう話をどっかで聞いたような?
ともあれ、サーバから送信して来たデータをどのように扱うかは
User Agent 依存なので、どの UA でも**確実**にダウンロードの
ダイアログを出させる方法はないでしょう。
すが [WriteDate : Fri Dec 8 09:17:38 2000]
ひよこさんへ
IE5.5ですと「普通あり得ない拡張子」だめでした。(ブラウザ内に表示しちゃう)
ふじさんへ
># ただ、IE5.5SP? でダイアログが開かなくなったとかいう話をどっかで聞いたような?
まさに、これでした!
お二人とも、ありがとうございました。
取りあえず右クリックで対処することにしました。
ふじ [URL] [WriteDate : Fri Dec 8 15:54:28 2000]
検証もしないで適当な事書いちゃいましたが、
#!/usr/bin/perl
print "Content-Type: text/csv
Content-Disposition: attachment; filename=hoge.csv
hoge,hoge
";
こんな CGI で実験したところ、
IE4.0(SP1, Win)
IE5.5(5.50.4522.1800 , Win)
IE5.0(5.00.2919.6307 , Win)
NN4.76 (Linux), NN4.75(Win)
NN6(Linux)
では、ダウンロードのダイアログがでました。
すが [WriteDate : Mon Dec 11 09:11:16 2000]
>IE4.0(SP1, Win)
>IE5.5(5.50.4522.1800 , Win)
>IE5.0(5.00.2919.6307 , Win)
>NN4.76 (Linux), NN4.75(Win)
>NN6(Linux)
>では、ダウンロードのダイアログがでました。
すみません。
どうやら、試したPCのIE5.5(5.50.4134.0600)がおかしいみたいです。
他のPCの同じバージョンのIEはダウンロードのダイアログがでました。
ホントに、ありがとうございました。