
之前的代碼 使用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('下載失敗');
}
};
