純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