我在構建一個csv文件並將其發送到瀏覽器。在某些安裝中,額外的字符被添加到http響應主體的開始處,並且銷燬該文件。csv文件中的額外字符
這就是我的代碼的樣子。
Dim File As New Text.StringBuilder
File.Append("Batch Name,")
File.Append("Batch Accepted Total")
File.AppendLine
For Each Batch In Batches
File.Append(Batch.Name)
File.Append(",")
File.AppendFormat("{0:c}", Batch.AcceptedTotal)
File.AppendLine
Next
Dim FileName = "SomeFile.csv"
Dim Encoder = Text.Encoding.UTF8
Dim FileData = Encoder.GetBytes(File.ToString)
Response.Clear
Response.ClearHeaders
Response.Buffer = True
Response.AddHeader("Content-Disposition", "attachment;filename=" & FileName)
Response.ContentType = "text/plain"
Response.OutputStream.Write(FileData, 0, FileData.Length)
Controller.FileData = Nothing
Response.Flush
Response.End
只有一些安裝可以做到這一點,而其他的則不行。我不知道爲什麼。如果我交換數據庫,同一站點仍然存在問題。所以我知道這不是數據依賴。
這是個什麼文件最終看起來像
781
Batch Name,Batch Accepted Total
3/8/2013,$961.24
Lincoln Payroll,$999.99
0
第一行改變718。它接縫取決於文件的大小。多餘的0在結尾從不改變,我也不知道它來自哪裏。
更新: 我發現第一行是以十六進制表示的內容的長度。同樣刪除此行將刪除多餘的字符。
Response.Flush
我還是不知道爲什麼。這條線不需要,所以我已經找到了一個修復程序,但如果有人知道發生了什麼,我想聽聽它。