asp.net4.0 VisualBasic visual studio2012 express でのcsvファイルのクライエント側への出力方法についての質問です。よろしくお願いします。

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.再度、別のファイル名で、データを出力したい場合はどうするか。
について、ご教示ください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/12/04 14:31:09
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:kojiro_i619

visual Basicでのコードなどを説明したwebを知っておられましたら教えてください。

回答1件)

id:language_and_engineering No.1

回答回数170ベストアンサー獲得回数63

こんにちは。


■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回のアクセスだけで,クライアントのローカルにファイルをいくつでも自動的に作成する事が可能です。

id:language_and_engineering

■質問の補足につきまして:

C#でのサンプルコードは,一つ前の質問のコメント欄の参考リンクに掲載されています。

そのコードを http://dobon.net/vb/dotnet/links/convertcs2vb.html でVB.netに変換なさってみるのはいかがでしょうか。

2013/12/04 14:04:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません