轻松实现POST 和 GET 两种方式导出下载文件

本文讨论了在处理大量参数的下载请求时,如何通过POST请求方式绕过浏览器长度限制,包括后端处理数据、创建Blob对象和生成下载链接的过程。同时,也提及了GET方式的实现方法,以及如何在前端通过`exportExcel`函数触发下载。
摘要由CSDN通过智能技术生成

注:

        因GET请求参数URL有长度限制,当你传入参数太多的话会导出下载失败,所以导出如果需要传的参数过多时,此时都需要使用POST请求来规避浏览器长度限制进行导出下载

POST方式:
  • 后端将查询到的数据作一些处理之后,将数据写入到请求的响应体中,前端在请求接口之后,在回调函数中,将响应体中的二进制流转化为Blob对象,然后创建一个下载链接进行下载。
  •      import { exportData } from '@/service/api/meta';  //引入接口
         
         exportData({tableName:this.tableName}).then(res =>{
            const blob = new Blob([res]);  //res为接口返回的二进制流
            const a = document.createElement('a');
            const bUrl = window.URL.createObjectURL(blob);
            a.href = bUrl;
            a.setAttribute('download', '文件目录.xlsx')
            document.body.appendChild(a);
            a.click()
            document.body.removechild(a);
         })

 

GET方式:
  • 实现方式和POST基本一致,后端只需要修改一下接口的请求方式和response的contentType;前端就只需要提供一个链接即可。
  •     // exportExcel 点击事件
        function exportExcel() {
          window.location.href = "http://localhost:8080/api/export"
        }

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值