Response.AppendHeader("Content-Disposition", "Attachment; Filename=MyFile.csv")
Response.ContentType = "text/csv"
Dim i As Integer
For i = 1 To 1000
Response.Write(i)
Response.Write(",")
Next
で、一応データ出力できますが、クローズしてないためか、何やら他のデータが書き込まれます。
以下の質問です。
1.データ出力の終わり方法
2.再度、別のファイル名で、データを出力したい場合はどうするか。
について、ご教示ください。
visual Basicでのコードなどを説明したwebを知っておられましたら教えてください。
こんにちは。
■1:
>1.データ出力の終わり方法
最後の行に Response.End(); を追加して下さい。
■2:
一つ前に質問なさった http://q.hatena.ne.jp/1385973258 にありましたが,私がサンプルコード付きで回答させて頂いた
>csvファイルをクライエント側のデスクトップ上に出力するコード
の路線(=路線1)を中止なさって,私が参考URLをコメントさせて頂いた
>「WebページにアクセスしたらCSVをダウンロードできる。ダウンロード先はクライアントがデスクトップを選ぶ。」
の路線(=路線2)に変更なさったんですね。
だとすると,
>2.再度、別のファイル名で、データを出力したい場合はどうするか。
は実現できなくなりました。Webには,そのような機能は実装できません。
HTTPでは,1回のURLリクエストにつき1レスポンス(=1ファイル)を返すことしかできません。
もし複数のファイルをクライアント側にダウンロードさせたいのであれば,例えば
・「ダウンロードページ」のようなページを表示し,
そこにCSVのダウンロードリンクを複数個設置する。
・クライアントは,それぞれのダウンロードリンクを押下して,
各リンクごとに異なったCSVをダウンロードする。
という方法になり,複数回の手動アクセスが必要になります。
これは路線2の場合です。
もし路線1を継続するのであれば,1回のアクセスだけで,クライアントのローカルにファイルをいくつでも自動的に作成する事が可能です。