vue从后台导出二进制流, 下载后提示文件损坏

导出时需要注意返回的数据一定要是二进制流, 使用以下代码导出返回流

export function downloadFile(obj, name, suffix = "xlsx") {
  const url = window.URL.createObjectURL(new Blob([obj], {type: "application/vnd.ms-excel"}))
  const link = document.createElement('a')
  link.style.display = 'none'
  link.href = url
  const fileName = name + '-' + parseTime(new Date()) + '.' + suffix
  link.setAttribute('download', fileName)
  document.body.appendChild(link)
  link.click()
  document.body.removeChild(link)
}

按照以上方式导出出现文件损坏提示, 原因是请求时少了请求头responseType: ‘blob’
在这里插入图片描述

加上请求头即可

Logo

前往低代码交流专区

更多推荐