下载服务器生成的文件(.vcf)

时间:2014-04-01 13:07:51

标签: asp.net vb.net file dialog download

我有一个带有一些地址数据的交互式aspx对话框(如姓名,电子邮件,地址等)。现在我希望用户能够通过单击按钮将地址数据下载为vcf文件。 现在,生成vcf兼容字符串不是问题。但是将它保存到客户端是。

虽然它很好地返回了vcf字符串,但它没有打开“Save AS”-dialog。下面我附上了我的文件下载逻辑。 我做错了什么?

(也许值得一提的是代码隐藏函数调用来自java脚本,...)

提前感谢任何有用的答案。

Public Sub SaveText(ByVal Text As String)

        Dim FileName As String = System.IO.Path.GetRandomFileName()

        Using sw As New System.IO.StreamWriter(Server.MapPath(FileName + ".txt"))
            sw.WriteLine(Text)
            sw.Close()
        End Using

        Dim fs As System.IO.FileStream = Nothing


        fs = System.IO.File.Open(Server.MapPath(FileName + ".txt"), System.IO.FileMode.Open)
        Dim btFile(fs.Length) As Byte
        fs.Read(btFile, 0, fs.Length)
        fs.Close()

        With HttpContext.Current.Response
            .Clear()
            .Buffer = True
            .Expires = 0
            .AddHeader("Content-disposition", "attachment;filename=" + FileName)
            .AddHeader("Content-Length", btFile.Length.ToString)
            .ContentType = "application/octet-stream"
            .BinaryWrite(btFile)
            '.OutputStream.Write(btFile, 0, btFile.Length())
            .Flush()
            .End()
        End With
    End Sub

1 个答案:

答案 0 :(得分:0)

好的,问题不在于上面提到的逻辑本身。我在客户端处理响应的方式是错误的。调用java脚本函数需要其他东西。 我会详细说明,但这里的东西是如此本土化和专有,它没有任何意义。 欢呼声。