我有一个交互式aspx对话框,其中包含一些地址数据(如姓名,电子邮件,地址,...)。现在我希望用户能够通过单击按钮将地址数据下载为 vcf 文件。现在,生成与 vcf 兼容的字符串不是问题。但是将其保存到客户端是。
虽然它返回 vcf 字符串很好,但它不会打开"另存为"对话框。下面我附上了文件下载的逻辑。我做错了什么?
(也许值得一提的是,代码隐藏函数调用来自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
好的,问题不在于上面提到的逻辑本身。我在客户端处理响应的方式是错误的。调用 java 脚本函数需要其他东西。我会更详细地阐述,但这里的东西是如此本土和专有,没有任何意义。干杯。