访问页面时,我可以通过以下方法下载文件。问题在于,它似乎会产生添加了更多字节的文件,基于文件的类型可能会使文件损坏。我有以下方法:
Public Class GetImage
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'snipped unimportant code
Dim fileSize = New FileInfo(filepath).Length
Response.Clear()
Response.AddHeader("content-length", fileSize.ToString())
Response.ContentType = "application/octet-stream"
Response.AppendHeader("content-disposition", "attachment; filename=" & DisplayName)
Response.TransmitFile(filepath)
End Sub
End Class
例如,使用上述方法下载大小为xlsm
的{{1}}文件时,下载的文件大小为177030
并在Excel中损坏(但可修复)。它似乎总是增加177710
个字节。
我尝试用680
代替TransmitFile
。将WriteFile
中的长度设置为从TransmitFile
正确检索的实际文件大小。我还查看了不同的文件,并尝试在服务器上和本地运行它。全部具有相同的结果。
答案 0 :(得分:0)
方法末尾缺少Response.Flush()