我有一个简单的网页,可以生成一个 CSV 文件,我希望用户在创建完成后能够下载该文件。
我的情况总结如下:
- CSV 文件可以在内存中或磁盘上创建。对我来说没关系。
- 完成 CSV 文件传输后,我不希望它继续驻留在磁盘上。
- 我尝试过使用 Response.WriteFile、.TransmitFile、.BinaryWrite 和 .Write 的各种代码,但无济于事。
- 当我说“无济于事”,我的意思是,我不是传输 CSV 文件,而是传输 CSV 文件的内容加上当前页面的全部内容!
- 我真的很困惑,因为我有另一个页面基本上在做同样的事情,但是 PDF 文件捆绑在 zip 文件中,而且它工作得很好。
- 我确实是一名 Windows 桌面开发人员,但我正在努力成为一名 Web 开发人员。 (如果这是一个愚蠢或菜鸟的问题,我很抱歉。)
这是我用来发送包含 PDF 文件的 .zip 的代码:
Protected Sub SaveReportsButton_Click(sender As Object, e As EventArgs) Handles SaveReportsButton.Click
'' The .zip file is created elsewhere
Dim fullPath As String = Server.MapPath("~/Reports/" & Session.SessionID & ".zip")
Response.ContentType = "APPLICATION/OCTET-STREAM"
Dim fileToDownload As New FileInfo(fullPath)
Dim disHeader As String = "Attachment; Filename=""Reports.zip"""
Response.AppendHeader("Content-Disposition", disHeader)
Response.Flush()
Response.WriteFile(fileToDownload.FullName)
End Sub
这是我尝试传输 CSV 文件的代码:
Protected Sub saveButton_Click(sender As Object, e As System.EventArgs) Handles SaveOutput.Click
Dim list As List(Of String) = {"000000000", "000000000", "000000000"}.ToList()
Dim sb As New Text.StringBuilder
For i As Integer = 0 To list.Count - 1
Dim str As String = list(i)
sb.Append(str)
If i < list.Count - 1 Then
sb.Append(",")
End If
Next
Dim dirPath As String = Server.MapPath("~/Output/" & Session.SessionID)
IO.Directory.CreateDirectory(dirPath)
Dim filePath As String = Server.MapPath("~/Output/" & Session.SessionID & "/Output.csv")
IO.File.WriteAllText(filePath, sb.ToString())
Response.ContentType = "text/csv"
Dim disHeader As String = "Attachment; Filename=""Output.csv"""
Response.AppendHeader("Content-Disposition", disHeader)
Response.Flush()
Response.WriteFile(filePath)
End Sub
就像我说的,我希望限制此页面创建并留在服务器上的文件,所以我想在完成后删除 CSV 文件。
有什么帮助吗?
谢谢!!!
尝试使用 Response.Write 和 Response.End
Protected Sub saveButton_Click(sender As Object, e As System.EventArgs) Handles SaveOutput.Click
Dim list As List(Of String) = {"000000000", "000000000", "000000000"}.ToList()
Dim sb As New Text.StringBuilder
For i As Integer = 0 To list.Count - 1
Dim str As String = list(i)
sb.Append(str)
If i < list.Count - 1 Then
sb.Append(",")
End If
Next
Response.Clear()
Response.ContentType = "text/csv"
Dim disHeader As String = "Attachment; Filename=""Output.csv"""
Response.AppendHeader("Content-Disposition", disHeader)
Response.Flush()
Response.Write(sb.ToString())
Response.End()
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)