HttpServletResponse下载压缩文件流报错,压缩文件错误或不可预料的压缩文件末端

错误可能
(0)如果用Blob处理response的流,则ajax请求中需要填写responseType: ‘blob’
(1)文件流没有正确关闭, 比如OutPutStream。
(2)文件流关闭顺序错误,应该按照先打开的流后关闭,后打开的流先关闭的顺序。
(3)在final中关闭流,但是return虽然是最后执行,但是如果return放在try里面,return会先报存结果,在finally执行后,再返回。导致文件流没有读取完整。 所以return应该放在方法的最后。

js处理后端返回字节流的代码

// ajax
export function exportXml(data) {return request({url: `${process.env.VUE_APP_API_MY}/transactionauditdata/v1/exportXml`,method: 'post',data: data,     responseType: 'blob'  // 声明返回的request为bolb格式,否则Blob处理流会报错})
}// download Function
export function commonDownload(res){// tar包,如果是zip,则为application/x-zip-compressedvar blob = new Blob([res.data], { type: 'application/x-tar' })let linkNode = document.createElement('a')linkNode.download = fileName + '.tar'linkNode.style.display = 'none'linkNode.href = URL.createObjectURL(blob)document.body.appendChild(linkNode)linkNode.click()URL.revokeObjectURL(linkNode.href)document.body.removeChild(linkNode)
}

JavaScript下载文件下载 [Blob]相关推荐

  1. javascript 大文件下载,分片下载,断点续传

    javascript 大文件下载,分片下载,断点续传 文章目录 javascript 大文件下载,分片下载,断点续传 1:获取文件大小: 2:切片下载 3:合并数据 4:下载到本地 5:成功 6:完整 ...

  2. JavaScript 下载大文件解决方案(Blob+OjbectURL)

    JavaScript 下载大文件解决方案(Blob+OjbectURL) 参考文章: (1)JavaScript 下载大文件解决方案(Blob+OjbectURL) (2)https://www.cn ...

  3. JavaScript多文件下载

    对于文件的下载,可以说是一个十分常见的话题,前端的很多项目中都会有这样的需求,比如 highChart 统计图的导出,在线图片编辑中的图片保存,在线代码编辑的代码导出等等.而很多时候,我们只给了一个链 ...

  4. JavaScript 实现文件下载并重命名

    JavaScript 实现文件下载并重命名 第一种是HTML官网中的方法 <a href="/images/liang.jpg" download="文件名称&qu ...

  5. 如何用 JavaScript 下载文件

    简介 我们知道,下载文件是一个非常常见的需求,但由于浏览器的安全策略的限制,我们通常只能通过一个额外的页面,访问某个文件的 url 来实现下载功能,但是这种用户体验非常不好. 幸好,HTML 5 里面 ...

  6. javascript下载文件几种方式,接收后台返回流下载或直接下载文件

    目录 1 javascript下载文件7中方式 1.1 window.location.href下载 1.2 window.location下载 1.3 iframe下载 1.4 form表单的形式下 ...

  7. js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件

    js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件 ================================ ©Copyright 蕃薯耀 2020-07 ...

  8. JavaScript中的Blob你知道多少

    很多开发者可能用过Blob,但是却并没有认真了解过Blob是什么?Blob的API有哪些?我们什么时候会用到Blob? 下面跟我一起详细了解下Blob吧~ 一.Blob 是什么 Blob(Binary ...

  9. 前端二进制流文件下载-Blob操作

    前端如何实现文件下载 前端下载文件的方法有两种, 一种是后端返回下载的URL, 使用 Window.open(URL) 下载, 另一种就是后端直接返回文件的二进制内容,前端做转换再下载. 使用场景 如 ...

最新文章

  1. 【 FPGA 】UltraFast设计方法学:在Vivado中使用设计规则检查
  2. cmd.exe启动参数说明
  3. 前端学习(2645):懂代码之header表头页之未读消息
  4. python决策树的应用_机器学习-决策树实战应用
  5. pulsar常用命令
  6. iOS-FMDB 使用
  7. ubuntu vscode通过cmake配置c++和VS2019一样 进行调试
  8. Windows和Linux hosts 文件位置
  9. 如何解决This system is not registered with RHN.
  10. 【Unity】在Inspector上显示自定义的位掩码枚举(Flags)
  11. 客户合并修改需求 @熊哥
  12. 使用WinDbg搭建edk2 DEBUG环境
  13. docker部署es和kibana遇到的坑
  14. 2021-03-21 什么是鲁棒性?
  15. RNA m6A修饰问题汇总(第二期)
  16. word试题模板设计总结
  17. glut库更新旧程序无法完成编译问题描述
  18. springboot 出现A component required a bean of type ‘com.cly.dao.OthersMapper‘ that could not be found.
  19. 手把手教你 MySQL 入门,太全啦!!
  20. 泛型模版类出现了LNK2019: 无法解析的外部符号错误

热门文章

  1. OpenStack----Nova 计算服务器基础理论(持续更新)
  2. EA类图之间的关系,用例图、类图、顺序图操作
  3. 如何开发一款app?
  4. MacBook 一个软件打开多个
  5. 明明白白你的'芯'-8051中Rx与ARx概念简介
  6. 实现车牌识别之二--使用Yolov3进行车牌定位
  7. 3自由度并联绘图机器人实现写字功能(一)
  8. 悦享数据-企业级API数据服务
  9. LoRaWan规范介绍
  10. “蜜拓蜜”高铁冠名列车首发仪式隆重举行