迅雷不能下载文件.通过JS语句执行到下载页面("文件另存为"的那个),可是点击保存后会先弹出迅雷下载页面,而这个页面下载后保存的只是web页面而不是我想要的东西,这是怎么回事?

解决方案 »

  1.   

    迅雷不能下载文件.通过JS语句执行到下载页面("文件另存为"的那个),可是点击保存后会先弹出迅雷下载页面,而这个页面下载后保存的只是web页面而不是我想要的东西,这是怎么回事?
      

  2.   

        因为迅雷获取的不是二进制流。你可以把下载的文件转化为二进制的。。
        
             // filename 下载的文件名,如 download.sql
             private void DowenLoad(string filename)
            {
                Page.Response.Buffer = true;
                Page.Response.Clear();
                //这里的ContentType也可以读存入数据库中的文件类型.
                Page.Response.ContentType = "Application/unknown";
                //attachment是以附件的形式下载,也可以改为online在线打开.
                Response.AddHeader("Content-Disposition", "attachment;  filename=" +
                HttpUtility.UrlEncode(filename, Encoding.UTF8) + ";");
                byte[] by = GetbyteFile(filename);//把文件转化为二进制
                if (by.Length != 0)
                {
                    Page.Response.BinaryWrite(by);
                    Page.Response.Flush();
                }
                Page.Response.End();
            }
        
      

  3.   

    然后在Page_load 事件调用DowenLoad