- - PR -
ASPでCSVファイルのダウンロード
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-07 14:40
WEBサーバからCSVファイルをダウンロードするプログラムを作っています。
言語はASPを利用しています。 ソースは以下のとおりです。 <HTML> <HEAD> <TITLE>CSVでダウンロード</TITLE> </HEAD> <BODY> <TABLE> <TR> <TD>AAA</TD> <TD>BBB</TD> <TD>CCC</TD> </TR> </TABLE> <% Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment;filename=xxxxxx.csv" Response.End() %> </BODY> </HEAD> </HTML> これを起動すると 次の2とおりの表示が確認されました。 (1)Windows2000SP4 Office2000, WindowsXP Pro Office2000で確認 AAA,BBB,CCCとxxxxxx[1].csvに表示される。 (2)WindowsXP Home Office2003で確認 プログラムソース全部がxxxxxx[1].csvに表示される。 上記のように 2とおりに表示される原因をご存知の方、ご教授ください。 | ||||
|
投稿日時: 2006-09-07 15:06
こんにちは。
2通りに表示される原因はわかりませんが、このようなソースだと Response.AddHeader や Response.ContentType が実行されるより も前に <HTML> の出力の時点でレスポンスヘッダが出力されてしまっている のではないでしょうか。 こういった場合は HTML を書かずに、直接 CSV (とレスポンスヘッダ)を出力す るコードを書きます。書くとしたらこんな感じになるでしょうか(検証していません)。
このあたりは HTTP の処理の流れにも通じるはずなので、興味があればいろい ろと調べてみてください。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||
|
投稿日時: 2006-09-07 16:15
早速のアドバイス、
ありがとうございます。 画面に表示するか、CSVに出力ダウンロードするかの二者択一の 表示方法を考えていまして、 <TABLE>〜</TABLE>の画面表示をそのままCSVに出力できるかと思い、試行錯誤しています。 <HTML>を使わないということは、 CSVへの出力プログラムは画面表示とは別にしないといけないですね。 ありがとうございました。 |
1