實現文件下載,將后台返回的字節流轉成下載鏈接


            var blob = new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'});
            var contentDisposition = res.headers['Content-disposition']; //從response的headers中獲取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 設置的文件名;
            var patt = new RegExp("filename=([^;]+\\.[^\\.;]+);*");
            var result = patt.exec(contentDisposition);
            var filename = result[1];
            var downloadElement = document.createElement('a');
            var href = window.URL.createObjectURL(blob); //創建下載的鏈接
            var reg = /^["](.*)["]$/g;
            downloadElement.style.display = 'none';
            downloadElement.href = href;
            downloadElement.download = decodeURI(filename.replace(reg,"$1")); //下載后文件名
            document.body.appendChild(downloadElement);
            downloadElement.click(); //點擊下載
            document.body.removeChild(downloadElement); //下載完成移除元素
            window.URL.revokeObjectURL(href); //釋放掉blob對象    

通過以上代碼,即可將后台返回的流轉成下載鏈接,出現下載地址窗口,若是不轉換,只會顯示亂碼。

還需要在發送接口請求時,加一個字段:

此時,就可以完美下載啦。


免責聲明!

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



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