egg服务端传输文件流到浏览器下载,当文件流达到2M时 chrome 直接提示下载失败-网络错误

之前的代码 使用FileReader 读取流文件 会受到chrome浏览器的文件传输的大小限制;
现在改为
URL.createObjectURL 方法导出 不受chrome浏览器文件传输限制
let xhr = new XMLHttpRequest();
xhr.open("GET", url, true); // 也可以使用POST方式,根据接口
xhr.responseType = "blob"; // 返回类型blob,XMLHttpRequest支持二进制流类型
xhr.onload = function() {
if (this.status === 200) {
let blob = this.response; //使用response作为返回,而非responseText
const objectURL = URL.createObjectURL(new Blob([blob], { type: 'text/xls' })) // chrome不受文件你大小限制导出文件
// let reader = new FileReader();
// reader.readAsDataURL(blob); // 转换为base64,可以直接放入a标签href
// objectURL.onload = function(e) {
// 转换完成,创建一个a标签用于下载
let a = document.createElement("a");
a.download = "xxxxxx.xlsx";
a.href = objectURL
a.click();
layer.msg('下载成功');
// };
} else {
layer.msg('下载失败');
}
};

浙公网安备 33010602011771号