需求是:由于下载页面是业务过程中弹出的,因此需要在下载页面点击下载后关闭下载页面代码:
            //一个脚本管理类,关闭本窗口
            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分了,求前辈指点谢谢

解决方案 »

  1.   

    什么下载都要这样 迅雷下载吧。添加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();   参考