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('下載失敗');
                        }
                    };

  

 


免責聲明!

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



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