定向到一个新的页面下载文件后(Directing to a new page after downl

2019-09-22 11:51发布

当我尝试下载它不工作文件后重定向到新的一页。 我一定要删除或在此代码修改什么? 调试犯规达到它

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");

Answer 1:

取出

Response.End();

Response.End杀死整个响应,没有后将运行。

end方法导致Web服务器停止处理脚本并返回当前结果。 该文件的剩余内容将不被处理。



Answer 2:

安德鲁是正确的关于停止到Response.End执行。 我不认为删除它会有所帮助,但是,因为它只是影响你要发送的文件。

你可以得到你想要与其他招数的效果。 例如,你可以在网页上使用一些JS与DL链接做一个客户端重定向。

编辑

什么我建议是,你添加辅助行为,你的下载链接,这样点击它都下载文件并改变当前页面。 如果点击启动定时器,做在第二个左右的重定向它可能更好地工作。



Answer 3:

我不是ASP的家伙,但你也需要移动写一些东西到响应的身体任何调用上面的转接呼叫。

尽量把Redirect()调用之后Response.Clear()

重定向URL在HTTP响应的报头传输,从而调用它之后产生所述主体(以及因此报头已经被产生并发送)在没有作用或错误会使。



Answer 4:

不要使用到Response.End()/它会突然结束的请求处理线程。



Answer 5:

你可以尝试删除此整个块:

Response.Flush();
Response.End();
Response.Clear();

我认为这个问题可能是调用Flush()导致内容被发送到浏览器,所以它是那么来不及补充,得到补充,当你调用重定向HTTP报头Redirect()



文章来源: Directing to a new page after downloading a file