作成が完了したらユーザーがダウンロードできるようにするCSVファイルを生成する簡単なWebページがあります。
これが私の状況の要約です:
- 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ファイルを使い終わったら削除したいと思います。
何か助けはありますか?
ありがとう!!!