前端下载文件,后端返回流的形式

前端下载文件,后端返回流的形式。

1.封装方法

    downloadFlexFlow(farmId, fileName) { // 传入id,下载文件时候的名称
      let url;
      if (process.env.NODE_ENV === "development") { // 判断是否本地启动(你可以不要)
        url = "/est";
      } else {
        url = "";
      }
      Axios({
        url: url + '/livestock/calfInfoExport/exportCalvingRecords', //请求路径
        responseType: "blob",  //表明返回服务器返回的数据类型
        method: "post",  //请求方式
        headers: {
          Authorization: 'Bearer ' + localStorage.getItem('token')  // 项目之后的token
        },
        data: {
          farmId: farmId
        },  //请求需要传的参数
      }).then((res) => {  //请求成功之后
        //创建一个隐藏的a链接
        const link = document.createElement("a"); // 创建a标签
        let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });  //文件流处理
        link.style.display = "none";  //去除a标签的样式
        // 设置连接
        link.href = URL.createObjectURL(blob);
        link.download = fileName;
        document.body.appendChild(link);
        //模拟点击事件
        link.click();
        //移除创建的a标签
        window.URL.revokeObjectURL(link.href);
        document.body.removeChild(link);
        this.$message({
          type: 'success',
          message: '导出' + fileName + '成功!',
        })
      }).catch(err => {
        this.$message({
          type: 'error',
          message: '导出' + fileName + '失败!',
        })
      });
	}

这样就可以了,如果你有问题可以留言,点个赞吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值