我有一個ASP.NET頁面,我在這裏生成一個Excel電子表格,並在響應(content-disposition header)中發送它。該部分效果很好,但我有一個永遠不會重新啓用的按鈕,因爲原始頁面不是響應的一部分。如何在HTTP響應中發送文件和頁面?
下面是我使用的功能:
Public Shared Sub WriteToResponse(ByVal theWorkBook As Workbook, ByVal FileName As String, ByVal resp As HttpResponse)
Dim theStream As New System.IO.MemoryStream()
theWorkBook.Save(theStream)
Dim byteArr As Byte() = DirectCast(Array.CreateInstance(GetType(Byte), theStream.Length), Byte())
theStream.Position = 0
theStream.Read(byteArr, 0, CInt(theStream.Length))
theStream.Close()
resp.Clear()
resp.AddHeader("content-disposition", "attachment; filename=" & FileName)
resp.BinaryWrite(byteArr)
resp.End()
End Sub
我試着不清除響應並使用替代的AddHeader AppendHeader,但反應仍然只包含文件。
我錯過了什麼?我需要使用不同的標題嗎?我發現這個unanswered question on the ASP.NET forums;聽起來像我的問題。