文件下載重命名(可跨域)


一、正常情況下,我們都如此下載文件並修改文件名,在a標簽上面添加download屬性

var link = document.createElement('a');
link.href = file.url;
link.download = file.name;
link.target="_blank";
link.click();

  


 

由於a.download跨域會失效,上面代碼只可同域實現
二、通過blob實現跨域下載並修改文件名

點擊時調用如下方法

 

function load(file) {
this.getBlob(file.url).then(blob => {
this.saveAs(blob, file.name);
});
},

 


//通過文件下載url拿到對應的blob對象

getBlob(url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();

xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};

xhr.send();
});
},

 

 

//下載文件
saveAs(blob, filename) {
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
link.click();
}

  

————————————————
版權聲明:本文為CSDN博主「cici-99」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/pqj222/java/article/details/102628834


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM