第一次按下按钮回发下载文件确定,但第二次按下同一按钮错误

时间:2018-06-17 10:55:44

标签: c# asp.net webforms

我在页面上有一个asp.net按钮服务器控件

<asp:Button ID="btDownload" runat="server" 
Text="Download Selected Backup" OnClick="btDownload_Click" />

代码背后:

string tempfileZip = "C:/somefile.zip";
FileInfo fi = new FileInfo(tempfileZip);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentType = "application/zip";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=somefile.zip");
HttpContext.Current.Response.AppendHeader("Content-Length", fi.Length.ToString());
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.TransmitFile(tempfileZip);
HttpContext.Current.Response.End();

好的,它运作得很好。该文件按预期下载。

但是,当第二次按下相同的按钮时,在下载文件后,服​​务器会显示“Download.aspx”页面的下载,而不是“somefile.zip”。

然后,当按下第三次按钮时,它返回正常状态并发送文件“somefile.zip”。

为什么第二次按下的行为错误,它应该传输zip文件,而不是aspx页面。

如何解决这个问题?

我上传了一个示例项目,该项目将在此重复出现错误:http://www.mediafire.com/file/ovhtk6gk85ndft4/WebApplication1.zip/file

0 个答案:

没有答案