System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.Buffer = false;
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();这是一个下载文件的代码,在最后用了
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
这样如果我在下面还要进行操作,是没有办法的。
不知道不加会有怎么样的后果,还行大家详细的说明下
如果你还需要做其他的工作,那就不要用了。实际上编写大部分的asp.cs代码时我们都没有Response.End(),但是系统会做这个事情。
首先讲讲它的好处。
调试程序的时候用处也很有用,类似设置断点,特别是你的程序有重大问题,如有死循环的时候一般的response.write 查看中间结果是无法看到的,这时在response.write后加入response.end,这个查看中间结果很有用。不过,如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。
Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的 Application_EndRequest 事件。不执行 Response.End 后面的代码行。
此问题出现在 Response.Redirect 和 Server.Transfer 方法中,因为这两种方法均在内部调用 Response.End。
关于用Response.WriteFile()在win2008里文件名变成前面多了地址的问题
不知道 周公 能不能帮解决下