blob - 二进制文件流下载
程序员文章站
2022-05-18 19:07:51
axios请求下载blob二进制流文件(自定义下载文件文件名) ......
/** * 返回值文件类型为 blob 二进制流文件 * responsetype: 'blob' * params 接口所需参数 * 命名文件名:依据时间戳命名文件名 * (导出时需要延迟,否则导出文件失败,默认文件名时直接导出) * */ $axios.get(`api`, { responsetype: 'blob', params }).then((res) => { // response 的返回值为二进制文件流 // 创建时间戳 let date = new date(), yyyy = date.getfullyear(), mm = date.getmonth() + 1, dd = date.getdate(), hh = date.gethours(), mm = date.getminutes(), ss = date.getseconds(); var timestr = `${yyyy}${mm}${dd}${hh}${mm}${ss}`; // 导出二进制文件 settimeout(() => { // 创建url对象 url.createobjecturl(object) let url = window.url.createobjecturl(res.data); let link = document.createelement('a'); link.style.display = 'none'; link.href = url; // 指定文件名&文件类型(后缀名) let filename = `users${timestr}cn.xls`; /** * 添加属性,并赋指定的值 el.setattribute('download','zzz') * demo: <a href="abc.gif" download="zzz"> * download属性的值即使当前要导出的文件的文件名 * */ link.setattribute('download', filename); link.click(); // 释放创建的对象(创建的新的url必须通过该方法释放) window.url.revokeobjecturl(url); }, 500); }).catch((err) => { console.log('文件导出失败: ', err); });
上一篇: Java连载105-线程的优先级
下一篇: python 设置默认字典