1. POST方式进行文件导出;
// url 下载URL fileName 下载文件名称 function exportFile(url,fileName) { let xhr = new XMLHttpRequest(); xhr.open("POST",url); xhr.responseType = "blob"; xhr.onload = () => { let ctx = xhr.response; let blob = Blob([ctx]); if ("msSaveOrOpenBlob" in navigator) {兼容IE window.navigator.msSaveOrOpenBlob(blob,fileName); } else { let aLink = document.createElement("a"); aLink.download = fileName; aLink.style.display = "none"; aLink.href = URL.createObjectURL(blob); document.body.appendChild(aLink); aLink.click(); document.body.removeChild(aLink); } }; xhr.send(); }
使用方法:exportFile(url,fileName);
使用Angular方式进行导出:
class ExportEvent { constructor( private http:HttpClient ){} url 下载URL fileName 下载文件名称 exportFile(url,fileName){ this.http.request("POST",url,{},{responseType:"blob"}).pipe()
.subscribe( (res)=>{ let blob = Blob([res]); window.navigator.msSaveOrOpenBlob(blob,fileName); } { let aLink = document.createElement("a"); aLink.download = fileName; aLink.style.display = "none"; aLink.href = URL.createObjectURL(blob); document.body.appendChild(aLink); aLink.click(); document.body.removeChild(aLink); } },(error)=>{ let reader = FileReader(); reader.onload = (e)=>{ if(e && e["target"]){ let errorMsg = JSON.parse(e["target"]["result"]); if(errorMsg && errorMsg["code"]){ console.log("有报错,出错了。。。。。"); } } } error.error的值是一个Blob对象 reader.readAsText(error.error); }
); } }
2. GET方式进行文件导出;
url 下载路径
window.location = url;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。