[求助]关于下载后关闭页面的问题,谢谢
需求是:由于下载页面是业务过程中弹出的,因此需要在下载页面点击下载后关闭下载页面代码:
//一个脚本管理类,关闭本窗口
ClientScriptManager cs = Page.ClientScript;
JScript.ScriptManager(cs, "window.close()");
//开始下载
if (File.Exists(tempFile))
{
FileInfo file = new FileInfo(tempFile);
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));
Response.AddHeader("Content-length", file.Length.ToString());
Response.ContentType = "appliction/octet-stream";
Response.WriteFile(file.FullName, true);
Response.End();
}
问题:下载完成后,并未关闭下载页面,跟踪有可能的问题是,response下载时弹出下载提示框,选择保存下载后,页面就停止活动了,注册的脚本window.close()未执行,试着将Response.End()去掉,还是不行,试着“关闭本窗口”的两行代码用多线程执行也不行,就剩下60分了,求前辈指点谢谢 --------------------编程问答-------------------- 这种下载方式不可能关闭页面 除非换种下载方式 --------------------编程问答--------------------
给个建议呗,换种啥方式呢? --------------------编程问答--------------------
什么下载都要这样
迅雷下载吧。
添加Download.aspx页。
FileStream f= new FileStream("", FileMode.Open);
byte[] buffer = new byte[f.Length];
f.Read(buffer, 0, buffer.Length);
f.Close();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("", System.Text.Encoding.UTF8));
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
参考
补充:.NET技术 , ASP.NET