js 下载文件流
2021-02-11 02:37
标签:code span 文件流 move request OLE new 参数 url 需要参数的时候,放在url上即可 重点来了,在处理excel下载时,后端返回了一个文件流,需要用blob处理下: js 下载文件流 标签:code span 文件流 move request OLE new 参数 url 原文地址:https://www.cnblogs.com/gaoht/p/13045370.html方法一: a标签
a href={`${API}/export/exportCheckingIn?uuid=${params.name}&startTime=${params.startTime}&endTime=${params.endTime}`} download>导出a>
方法二: 文件流
// 获取时间戳
let timestamp = new Date().getTime();
// 获取XMLHttpRequest
let xmlResquest = new XMLHttpRequest();
// 发起请求
xmlResquest.open("GET", `${API}/export/exportCheckingIn?uuid=${params.name}&startTime=${params.startTime}&endTime=${params.endTime}`, true);
// 设置请求头类型
xmlResquest.setRequestHeader("Content-type", "application/json");
// 设置请求token
// xmlResquest.setRequestHeader(
// );
xmlResquest.responseType = "blob";
// 返回
xmlResquest.onload = function (oEvent) {
let content = xmlResquest.response;
// 组装a标签
let elink = document.createElement("a");
// 设置下载文件名
elink.download = timestamp + ".xlsx";
elink.style.display = "none";
let blob = new Blob([content]);
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
document.body.removeChild(elink);
};
xmlResquest.upload.onprogress = function (e) {
if (e.lengthComputable) { //lengthComputable 是 progress 的一个属性,表示资源是否可计算字节流
let pross = (e.loaded / e.total) * 100;
console.log(pross)
}
}
xmlResquest.send();
上一篇:css魔幻属性跟进篇