vue 使用blob下载流文件

在开发过程中,难免会遇到后台接口返回流文件,此时可以根据blob来下载

1.一些常用文件对应的type

文件后缀 blob对应的type
.doc application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.xls application/vnd.ms-excel
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.txt text/plain
.pdf application/pdf

2.代码如下

 vue 使用blob下载流文件

 downLoadFile(params).then(res => {
        if (res.size !== 0) {
          const blob = new Blob([res], { type: 'application/pdf' })
          const url = window.URL.createObjectURL(blob)
          const link = document.createElement('a')
          link.style.display = 'none'
          link.href = url
          link.setAttribute('download', params.filename)
          document.body.appendChild(link)
          link.click() // a标签自动触发点击事件
        } else {
          this.msgError('文件不存在')
        }
      })

 这样写完其实有个问题,那就是下载的文件打开是空的,找了好久找到问题了,解决如下:

 vue 使用blob下载流文件

 在接口定义那里设置接收响应类似是blob,这样就可以吧文件下载下来了 

 

上一篇:SiteFactory从word复制粘贴公式


下一篇:记一次关于pdf 下载需求变更到 pdf 在线预览