- PR -

別ウィンドウでダウンロード処理

投稿者投稿内容
はぎ丸
常連さん
会議室デビュー日: 2005/02/02
投稿数: 36
投稿日時: 2005-03-18 17:13
こんにちは。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19716&forum=7
↑これは参考になりませんか?
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-03-18 17:34
コード:

'WebForm1.aspx.vb(呼ぶ側の画面その1)
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim strHeader As String = "a,a,a,a"
    Dim strData As String = "1,1,1,1"
    Session("strHeader") = strHeader
    Session("strData") = strData
    Response.Redirect("CsvDownload.aspx")
End Sub

'WebForm2.aspx.vb(呼ぶ側の画面その2)
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Dim strHeader As String = "b,b,b,b"
    Dim strData As String = "2,2,2,2"
    Session("strHeader") = strHeader
    Session("strData") = strData
    Response.Redirect("CsvDownload.aspx")
End Sub

'CsvDownload.aspx.vb(呼ばれる側)
Private Sub Page_Load(ByVal sender As System.Object, _
                      ByVal e As System.EventArgs) Handles MyBase.Load
    Dim strHeader As String = Session("strHeader")
    Dim strData As String = Session("strData")
    Response.Charset = "Shift_JIS"
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("Shift_JIS")
    Response.ContentType = "application/octet-stream"
    Response.AppendHeader("Content-Disposition", "attachment;filename=test.csv")
    Response.Write(strHeader & vbCrLf)
    Response.Write(strData & vbCrLf)
    Response.End()
End Sub


今回はめんどくさいので書いちゃいましたが…
まずは自分でわからないなりに書いて動かしてみる癖をつけてください。
上のコードも完璧ではありません。ブラウザのバージョンの違いとか考慮してないし、
データの受け渡し方法も、場合によってはSession以外を使った方が良い場合もあります。
足りないところは自分で調べて補完してください。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-03-18 21:18
引用:

Response.Clear()
Response.AddHeader("Content-Disposition", "attachment;filename=aaa.csv")
Response.ContentType = "application/octet-stream"
Response.ContentEncoding = System.Text.Encoding.GetEncoding("Shift-JIS")
Response.Write(strHeader & vbCrLf)
Response.Write(strData & vbCrLf)
Response.Write(str_Script)


 これ、どういうことを行っているか、理解しています?っていうか、ダウンロードしたaaa.csvファイルを開いてみました?開いていないなら、是非メモ帳で開いてください。なぜ閉じられなかったか、わかると思います。「なぜ、このような出力になるのか」を考え、理解してください。そうしないと、同じことで何度もつまずきます。

_________________

スキルアップ/キャリアアップ(JOB@IT)