Perlを使ってCGIを書いています。
申し込みフォームを送信すると、CSVファイルに書き込むのとメールで送信するというCGIを作りました。
そこで、その作ったCSVファイルをFTPソフトを使うのではなく、ブラウザ上でCGIを使ってダウンロードしたいのですが、どうしたらよいのでしょう?

環境は
OS:Linux、PerlのバージョンはPerl5です。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

> a-kumaさんの書かれたやり方、もう少し詳しく教えていただけないでしょうか?



普通に、処理をして、その結果を表示するような CGI だと、出力の最初で、
こんなふうに、ヘッダを出力しますよね。

print "Content-type: text/html\n";
print "\n";

a-kuma> 普通に html のページを書き出すように、標準出力に CSV ファイルの内容をそのまま
a-kuma> 書き出します。ただ、そのときに、Content-Type をアプリケーションが結び付けられ
a-kuma> ていない application/octet-stream なんかにしておく必要があります。

は、そのヘッダの出力を、こんなふうにする、ということです。

print "Content-type: application/octet-stream\n";
print "\n";

これ以降は、ダウンロードしたいデータをそのまま(print なんかで)書き出します。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
イマイチやり方がわかりませんでした。

お礼日時:2001/11/20 15:26

「ダウンロード」で良いんですよね。



普通に html のページを書き出すように、標準出力に CSV ファイルの内容をそのまま
書き出します。ただ、そのときに、Content-Type をアプリケーションが結び付けられ
ていない application/octet-stream なんかにしておく必要があります。

Content-Type を変えれば、Excel で開く、っていうことも可能です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
a-kumaさんの書かれたやり方、もう少し詳しく教えていただけないでしょうか?
まだまだ初心者な私にはどう書いていいのか、よくわからないんです。
お願いします。

お礼日時:2001/10/16 12:26

すみません、ダウンロードでしたね。


それならばブラウザのURLでそのCSVファイル名を直接指定してやればOKだと思うのですが。。。
    • good
    • 0
この回答へのお礼

ありがとうございます。
確かに、URLで直接指定したらダウンロードできました。
でも、もう少し初心者の方に親切なものを作りたいんです。

お礼日時:2001/10/16 12:24

CSVファイルはカンマ区切りテキストファイルですので、CGIでこのファイルをオープンし、カンマ単位でレコードを切り離しテーブルタグを付加して表示させれば良いと思います。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
これは、出力方法ですよね。

お礼日時:2001/10/16 12:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報

カテゴリ