我也是網(wǎng)上抄的復(fù)制下面兩個(gè)方法,直接調(diào)用fileLinkToStreamDownload 就能下載
function fileLinkToStreamDownload(url, fileName, type){
let reg = /^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-]+).)+([A-Za-z0-9-/])+{type}`);
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
//接受二進(jìn)制文件流
var blob = this.response;
downloadExportFile(blob, fileName, type)
}
};
xhr.send();
}
}
/**
*下載導(dǎo)出文件
- @param blob :返回?cái)?shù)據(jù)的blob對(duì)象或鏈接
- @param tagFileName :下載后文件名標(biāo)記
- @param fileType :文件類(lèi) word(docx) excel(xlsx) ppt等
*/
function downloadExportFile(blob, tagFileName, fileType) {
let downloadElement = document.createElement('a');
let href = blob;
if (typeof blob == 'string') {
downloadElement.target = '_blank';
} else {
href = window.URL.createObjectURL(blob); //創(chuàng)建下載的鏈接
}
downloadElement.href = href;
downloadElement.download = tagFileName + moment(new Date().getTime()).format('YYYYMMDDhhmmss') + '.' + fileType; //下載后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //點(diǎn)擊下載
document.body.removeChild(downloadElement); //下載完成移除元素
if (typeof blob != 'string') {
window.URL.revokeObjectURL(href); //釋放掉blob對(duì)象
}
}