Word文档下载 流

后台

 1 public void DownFiletemple(string filepath)
 2         {
 3             FileInfo fileInfo = new FileInfo(filepath);
 4             Response.Clear();
 5             Response.ClearContent();
 6             Response.ClearHeaders();
 7             logger.Trace("测试1:···" + fileInfo.FullName);
 8             Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.FullName);
 9             Response.AddHeader("Content-Length", fileInfo.Length.ToString());
10             logger.Trace("测试2:··Content-Length/·" + fileInfo.Length.ToString());
11             Response.AddHeader("Content-Transfer-Encoding", "binary");
12             Response.AddHeader("Connection", "Keep-Alive");
13 
14             Response.ContentType = "application/octet-stream";
15             Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
16             logger.Trace("测试3");
17             Response.WriteFile(fileInfo.FullName);
18             logger.Trace("成功");
19             Response.Flush();
20             Response.End();
21 
22            
23         }

异步请求

 1 function btnfiledwon(){
 2     
 3         
 4     var url = 'vshop_CheckOut.aspx?type=ajax&action=FileDown';
 5  
 6    var xhr = new XMLHttpRequest();
 7 
 8    xhr.open('POST', url, true);        // 也可以使用POST方式,根据接口
 9 
10    xhr.responseType = "blob";    // 返回类型blob
11 
12    // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
13 
14    xhr.onload = function () {
15        // 请求完成
16 
17        if (this.status === 200) {
18            // 返回200
19 
20            var blob = this.response;
21 
22            var reader = new FileReader();
23 
24            reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href
25 
26            reader.onload = function (e) {
27 
28                // 转换完成,创建一个a标签用于下载
29 
30                var a = document.createElement('a');
31 
32                a.download = '订单合同.docx';
33 
34                a.href = e.target.result;
35 
36                $("body").append(a);    // 修复firefox中无法触发click
37 
38                a.click();
39 
40                $(a).remove();
41 
42            }
43 
44        }
45 
46    };
47 
48    // 发送ajax请求
49 
50    xhr.send()
51     }

 

posted @ 2020-04-20 18:36  江小白ra  阅读(230)  评论(0编辑  收藏  举报