通过模拟form表单实现post方法批量下载文件

以下是在vue项目中,通过模拟原生form表单实现批量下载

    绑定点击事件
    <el-button @click="mulDownload()">批量下载</el-button>
    在data里定义下载接口地址
    urlActionMulDownload: window.SITE_CONFIG['baseUrl'] + '/unionFile/downloadZip',
  给postUrl方法传入下载接口地址和需要下载的多个文件的id组成的数组ids
 //批量导出
   mulDownload() {
      this.postUrl(this.urlActionMulDownload, {"fileIds": JSON.stringify(this.ids)})
   },
   postUrl(url, params) {
        var temp_form = document.createElement("form");
        temp_form.action = url;
        temp_form.target = "_self";
        temp_form.method = "post";
        temp_form.style.display = "none";
        for (var x in params) {
          var opt = document.createElement("input")
          opt.name = x;
          opt.value = params[x];
          temp_form.appendChild(opt)
        }
        document.body.appendChild(temp_form);

        temp_form.submit()
      },
   模拟创建一个form表单,设置表单action为下载接口地址,定义target属性规定在何处打开链接文档,方法为post,表单通过display:none隐藏。
   然后通过for循环ids,创建input输入框,将ids中的每个id分别赋值到input中的value,并将所有input框添加到form表单中。
   最后通过原生submit方法提交,实现批量下载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值