CGI-BBS > CGI > Perl > ファイルダウンロードについて


カレッヂ
カレッヂ


質問者 こば  投稿日 5/1(火) 18:29:07
画面出力をせずにファイルをPERLが起動された直後にダウンロードさせたい場合にContent-type: application/octet-streamをヘッダーにつければ可能と考えていたのですがブラウザによっては画面に出力してしまいます。よい方法はないでしょうか?
回答者 しあわせのツボ  [削除]  投稿日 5/1(火) 19:01:57
GETしたデータをどうするかはブラウザの仕事であり、サーバ側で制御することはできません。

なぜPerlからの出力をファイルに落とさせたいのか、理由を教えていただけますか。
それによってはいい代替案があるかもしれません。
質問者 こば  [削除]  投稿日 5/1(火) 19:11:26
早速の返事ありがとうございます。理由についてですが、業務上のサービスのためです。
CSV形式のデータを月毎に選ばせて(ファイル名は可変)ダウンロードする流れです。
JAVAのボタンからファイル名をPOSTさせてCGIでダウンロードします。
回答者 しあわせのツボ  [削除]  投稿日 5/1(火) 20:31:38
普通にCSVファイルへのリンクを張るのではダメなのですね?
だとすると、「まともな」方法はないと思います。

ブラウザが絶対解釈できないようなヘッダ(たとえば"application/x-myperl-csv-hogehoge"のように)を出力してやれば「どうするの?」と尋ねさせるくらいはできるかもしれませんが、それとてブラウザによっては何も聞かずに画面へ出力してしまうかもしれません。

「画面に出ちゃったら保存してね」と教育する方が早いのではないでしょうか。
クライアントのブラウザ全てを設定し直すのなら話は別ですが。

返信(回答)する


Web裏技