0
点赞
收藏
分享

微信扫一扫

关于反射~

灯火南山 2024-03-07 阅读 14
前端

后端接口返回zip包的二进制数据,前端实现下载其实方法很简单,通过下列代码即可实现。

let blob = new Blob([data],{type: 'application/zip'})
let url = window.URL.createObjectURL(blob)
const link = document.createElement('a') // 创建a标签
link.href = url
link.click()
URL.revokeObjectURL(url) // 释放内存
  • 说明:上述代码中,data是通过接口获取到的zip文件二进制数据。

但是,下载的文件无法解压,报错如下:

在这里插入图片描述

那是什么原因呢?

其实,我们使用blob,那请求中需要指定responseTypeblob即可。方法如下:

downloadZip() {
    return request({
        url: request_url,
        headers: { // ... headers },
        method: 'get',
        responseType: "blob"
    })
}

在request中添加上述代码中的responseType: "blob",就解决了下载的zip文件无法打开的问题。

举报

相关推荐

0 条评论