当我尝试下载它不工作文件后重定向到新的一页。 我一定要删除或在此代码修改什么? 调试犯规达到它
byte[] fileData = (byte[])sqlRead[3];
Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=" + sqlRead[2]);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(fileData);
Response.Flush();
Response.End();
Response.Clear();
Response.Redirect("Questions.aspx");
取出
Response.End();
Response.End
杀死整个响应,没有后将运行。
end方法导致Web服务器停止处理脚本并返回当前结果。 该文件的剩余内容将不被处理。
安德鲁是正确的关于停止到Response.End执行。 我不认为删除它会有所帮助,但是,因为它只是影响你要发送的文件。
你可以得到你想要与其他招数的效果。 例如,你可以在网页上使用一些JS与DL链接做一个客户端重定向。
编辑
什么我建议是,你添加辅助行为,你的下载链接,这样点击它都下载文件并改变当前页面。 如果点击启动定时器,做在第二个左右的重定向它可能更好地工作。
我不是ASP的家伙,但你也需要移动写一些东西到响应的身体任何调用上面的转接呼叫。
尽量把Redirect()
调用之后Response.Clear()
重定向URL在HTTP响应的报头传输,从而调用它之后产生所述主体(以及因此报头已经被产生并发送)在没有作用或错误会使。
不要使用到Response.End()/它会突然结束的请求处理线程。
你可以尝试删除此整个块:
Response.Flush();
Response.End();
Response.Clear();
我认为这个问题可能是调用Flush()
导致内容被发送到浏览器,所以它是那么来不及补充,得到补充,当你调用重定向HTTP报头Redirect()