js前端导出.zip二进制流压缩包

前几天做的导出.zip格式的二进制流压缩包,在这里记录一下,方便以后使用。
axios中请求接口代码如下

exportDetail(param) {
    return Fetch({
      url: '/purchaseOrder/exportDetail',
      method: 'post',
      data: param,
      headers: { // 这里需要使用form-data格式数据发送请求
        "Content-Type": " application/json;charset=UTF-8"
      },
      responseType:'blob'
    });
  },

methods方法中代码

batchExport(){
  let params = {
    purchaseOrderIds:this.checkedList,
  }
  Service.exportDetail(params).then((res)=>{
    let blob = new Blob([res],{type: 'application/zip'})
    let url = window.URL.createObjectURL(blob)
    const link = document.createElement('a') // 创建a标签
    link.href = url
    link.click()
    URL.revokeObjectURL(url) // 释放内存
  })
},

windows下载完成后,直接点击就能解压出来,但是mac下载完成后,直接点击会报错,需要使用解压工具解压,我用的keka解压后就能打开了,不知道mac直接点击为什么会报错
在这里记录一下,方便以后使用

你可能感兴趣的:(导出,.zip,二进制文件流,前端,javascript,vue.js)