美文网首页
前端下载文件成功,但打不开

前端下载文件成功,但打不开

作者: 小小_128 | 来源:发表于2021-11-30 11:30 被阅读0次

前端通过后端返回的文件流下载excel文件方法如下:

downloadExlFile(data, fileName) {
  let blob = new Blob([data], {
    type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8'
  })
  let a = document.createElement('a')
  let url = window.URL.createObjectURL(blob)
  a.href = url
  a.download = fileName
  document.body.appendChild(a)
  a.style.display = 'none'
  a.click()
  window.URL.revokeObjectURL(url)
}

但是我遇到一个问题:就是下载文件成功了但是打不开,一看是文件损坏。

后来浏览了好多篇文章后发现,就因为main.js中引入了mock.js,但其实并没有使用,就算没有使用也会拦截到我的接口请求并改变返回的内容

这是被改变后的样子,就算接口请求里面responseType设置为blob,但输出接口返回仍然是下面的这个样子,且request被改为MockXMLHttpRequest

image.png

正常的应该是返回data为Blob对象,request是一个XMLHttpRequest对象

image.png

结论就是,在main.js中注释掉mock.js就好啦!~~

相关文章

  • 前端下载文件成功,但打不开

    前端通过后端返回的文件流下载excel文件方法如下: 但是我遇到一个问题:就是下载文件成功了但是打不开,一看是文件...

  • js blob导出文件 文件下载 中文乱码的问题

    需求:后端文件以二进制流的形式返回给前端, 前端需要读取流文件实现文件下载。 场景:下载成功,文件乱码。 原因:与...

  • Springboot下载Excel文件,解决文件损坏问题

    今天碰到一个坑 前端调用下载Excel模板接口时,下载文件成功,但是文件被损坏。 先上代码~ @Api(tags ...

  • 前端补课:WHAT ? 下载excel文件却打不开?

    背景: 对列表里的数据进行选择性下载 (列表有十多个筛选项;采用post方式下载的excel打不开 页面: 开发过...

  • 文件上传与下载

    文件上传 前端页面 Action处理类 struts.xml 文件下载 前端页面 处理下载请求的action st...

  • 前端文件下载

    最近做项目遇到要把文件放在前端项目中,然后点击下载完整代码: 先把文件放在静态目录src/assets里面 通过i...

  • Vue-纯前端导出word文档

    在项目中,我们可以借助后端返回文件流实现文件下载。如果前端有数据,也可以借助前端框架进行下载。本文将介绍如何在前端...

  • Vue-纯前端导出word文档

    在项目中,我们可以借助后端返回文件流实现文件下载。如果前端有数据,也可以借助前端框架进行下载。本文将介绍如何在前端...

  • 前端下载文件无法打开

    前端下载文件无法打开 在开发过程中遇到下载功能,后端直接从服务器拉文件是可以打开的,前端通过接口下载的文件打开报错...

  • xlsx.js excel文件下载

    excel 文件的下载 前端 后端导出 excel

网友评论

      本文标题:前端下载文件成功,但打不开

      本文链接:https://www.haomeiwen.com/subject/ctkntrtx.html