首页 > 其他分享 >vue2前端调接口下载(导出)后端返回.zip压缩文件流

vue2前端调接口下载(导出)后端返回.zip压缩文件流

时间:2023-12-19 16:45:54浏览次数:23  
标签:loading zip 导出 压缩文件 let vue2 link data

1、接口api

// 三级教育档案导出
export function searchPersonnelHousInfoExport(data) {
  return request({
    url: train + '/fileExport/controller/export/personalProfile',
    method: 'post',
    data: data,
    responseType: 'blob',
    headers: {
      'Content-Type': 'application/json; application/octet-stream'
    }
  })
}

调用:

async exportFn() {
      let upload_loading = this.$loading({
        lock: true,
        text: '数据导出中...',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.8)',
      });
      let params = {
        userId: this.selectData,
        startTime: this.queryParams.startTime,
        endTime:this.queryParams.endTime
      }
      await searchPersonnelHousInfoExport(params).then(res=>{
        upload_loading.close();
        if(res){
          this.fileHandleCompressed(res, '三级教育档案导出.zip');
        }else{
          this.$modal.msg('下载文件出现错误,请联系管理员!');
        }
      }).catch(err=>{
        upload_loading.close();
      });
    }

// 文件流转为zip
    fileHandleCompressed(data, fileName) {
      let blob = new Blob([data], { type: 'application/zip,charset=utf-8'})//此处必须添加
      let url = window.URL.createObjectURL(blob);
      const link = window.document.createElement('a'); // 创建a标签
      link.href = url;
      link.download = fileName; // 重命名文件
      link.click();
      URL.revokeObjectURL(url); // 释放内存
    },


注意:使用文件流时不能引入mock,否则会致使文件流乱码,导致无法正常导出为zip格式的压缩包文件。

 

标签:loading,zip,导出,压缩文件,let,vue2,link,data
From: https://www.cnblogs.com/LindaBlog/p/17914125.html

相关文章

  • C#利用自带的ZipFile压缩和解压zip文件,超级简单
    C#利用自带的ZipFile压缩和解压zip文件,超级简单翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 你经常看TA的内容ZipFile类是.NETFramework4.5发布的一个C#压缩文件和解压zip文件的一个类库,它支持.NETFramework4.5以上版本,包......
  • Vue学习计划-Vue2--VueCLi(二)vuecli脚手架创建的项目内部主要文件分析
    1.文件分析1.补充:什么叫单文件组件?一个文件中只有一个组件vue-cli创建的项目中,.vue的文件都是单文件组件,例如App.vue2.进入分析1.package.json:项目依赖配置文件:如图,我们说主要的属性:name:项目的名称version:项目版本scripts:脚本入口serve:启动项目命......
  • vue2子组件拷贝父组件传递的参数
    在Vue2中,父组件向子组件传递参数时,如果参数是对象或数组(即非基本数据类型),那么子组件可以直接修改这个参数,这会影响到父组件的数据。如果你想避免这种情况,你可以让子组件对父组件的传参进行深度拷贝。这样,子组件就可以自由修改拷贝后的参数,而不会影响到父组件的数据。这是一个例......
  • Vue2 校验不通过的表单,赋正确的值后,再次校验结果不变
    前言在工作中遇到了这个问题,多次排查,耗费了不少时间才解决这个问题。问题的解决很简单,但发现根本原因还是有点困难,因此在此做个记录,以防忘记。问题发现步骤例如有以下AntDesignVue表单<a-form-modelref="formRef":model="model"><a-form-model-itemlabel="姓名"pr......
  • vue2 中 el-table 实现树形列表,支持增删改等操作
    需求场景:el-table构造一个树形列表,支持新增节点,删除,修改等操作。实现效果思路 一般的el-table增删改,我们都很熟悉;关键在于实现一个纯前端的树形列表,最终再调接口存列表数据。     树形el-table,需要设置 row-key,一般为id,所以每新增一条数据,都必须有id。需......
  • Redis数据结构4:REDIS_ZIPLIST
    REDIS_ZIPLISTzipList(压缩列表)是一种紧凑型的数据结构,占用一片连续的内存,本质上是一个字节数组。能提高CPU缓存的利用效率,并且针对不同数据结构进行不同编码,节省内存开销。编码结构zipList的字节数组主要由5个部分组成:zlbytes、zltail、zllen、zltail和entry。zlbytes记录......
  • Python——第五章:Zipfile模块
    Zipfile模块zipfile模块是Python中用于处理ZIP文件的标准库模块。它提供了创建、读取和写入ZIP文件的功能。zipfile模块在写入文件时,如果要将文件写入子目录,需要在写入文件前先创建好相应的目录结构。创建压缩包在使用zipfile.ZipFile写入模式(mode="w")时,如果指......
  • 分布式进阶-链路追踪SpringCloudSleuth、Zipkin【实战篇】
    一、前言我们在使用微服务的时候,往往设计到各个微服务之间的调用,肯定会存在深度的调用链路,如果出现BUG或者异常,就会让问题定位和处理效率非常低。有了Sleuth,就可以帮助我们记录、跟踪应用程序中的请求和操作。通常与Zipkin配合使用,从而提供更全面的可视化应用程序跟踪和分析功......
  • windows安装mysql时卡write configuration file曲线救国 mysql 5.7.39 免安装(ZIP压缩
    现象描述现象描述:使用安装包安装时,卡:writeconfigurationfile解决办法解决办法:曲线救国mysql5.7.39免安装(ZIP压缩包)版本安装配置1.下载mysql官网:mysql官网,点击前往2.安装下载后解压到任意文件夹,如我所解压的路径为:D:\ProgramFiles\MySQL\mysql-5.7将解压......
  • vue2项目webpack打包的优化策略,降低打包文件后的大小
    1.区分开发模式和打包模式的main.js入口文件首先,在项目的根目录下创建一个名为vue.config.js的文件(如果已存在,请跳过此步骤)。然后对于你的项目中的mian.js新建一个相同内容的js文件,然后将这2个mian.js文件分别命名为打包模式的入口文件:main-prod.js开发模式的入口文件:mian-dev.js......