纯js实现 文件下载与更改名称


 1         /**
 2          * 获取 blob
 3          *   {String} url 目标文件地址
 4          *  {cb} 下载完的保存回调
 5          */
 6         function getBlob(url, cb) {
 7             var xhr = new XMLHttpRequest();
 8             xhr.open('GET', url, true);
 9             xhr.responseType = 'blob';
10             xhr.onload = function () {
11                 if (xhr.status === 200) {
12                     cb(xhr.response);
13                 }
14             };
15             xhr.send();
16         }
17 
18         /**
19          * 保存
20          *   {Blob} blob
21          *   {String} filename 想要保存的文件名称
22          */
23         function saveAs(blob, filename) {
24             if (window.navigator.msSaveOrOpenBlob) {
25                 navigator.msSaveBlob(blob, filename);
26             } else {
27                 var link = document.createElement('a');
28                 var body = document.querySelector('body');
29 
30                 link.href = window.URL.createObjectURL(blob);
31                 link.download = filename;
32 
33                 // fix Firefox
34                 link.style.display = 'none';
35                 body.appendChild(link);
36 
37                 link.click();
38                 body.removeChild(link);
39 
40                 window.URL.revokeObjectURL(link.href);
41             };
42         }
43 
44         /**
45          * 下载
46          *   {String} url 目标文件地址
47          *   {String} filename 想要保存的文件名称
48          */
49         function download(url, filename) {
50             getBlob(url, function (blob) {
51                 saveAs(blob, filename);
52             });
53         };

使用:

download(url,'test.txt');


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM