我在页面上有一个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