标签:设置 type else ons set end ade win down
前端如何处理后台返回的文件流?
处理方法:可以通过转化为blob对象的方式处理,具体方法如下:
1、在请求后台接口时需要把responseType设置为blob格式。
2、前端把后台返回的文件流转化为blob对象,然后利用window.URL.createObjectURL把blob对象转化为url,然后利用a标签进行下载。
放码过来:
downloadBlobFile(data, name) { if (window.navigator.msSaveOrOpenBlob) { // 兼容IE try { var blobObject = new Blob([encodeURI(data)]); window.navigator.msSaveOrOpenBlob(blobObject, fileName); } catch (e) { console.log(e); } } else { var blob = new Blob([data], { type: "application/octet-stream;charset=UTF-8" }); var downloadElement = document.createElement("a"); // 下载的文件名 downloadElement.download = name; // 创建下载的链接 downloadElement.href = window.URL.createObjectURL(blob); // 点击下载 downloadElement.click(); document.body.appendChild(downloadElement); // 下载完成移除元素 document.body.removeChild(downloadElement); // 释放掉blob对象 window.URL.revokeObjectURL(downloadElement.href); } }
标签:设置 type else ons set end ade win down
原文地址:https://www.cnblogs.com/brucefq/p/14847126.html