原生js 通过form方式下载文件

11 篇文章 1 订阅

前言

有时候,有一些链接用a标签,或者window.location,href 下载不了。或者在Android,IOS存在兼容性问题。这时候就会想到使用原生js 通过 form方式下载文件。

直接上代码

    /**
    data:   所需传的参数
     */
   let  data = {
        c: "",
        m: "",
        p: {},
      };
      let url = "https://xxx.pdf";
    // 创建form, 添加所需传的参数
    var formHtml = "<form id='downLoadForm' style='display:none' method='post' action='"+ url +">" +
      "<input type='hidden' name='c' value='" + data.c + "'>" +
      "<input type='hidden' name='m' value='" + data.m + "'>" +
      "<input type='hidden' name='p' value='" + JSON.stringify(data.p) + "'>" +
      "</form>";
    var divDom = document.createElement("div");
    divDom.innerHTML = formHtml;
    document.body.appendChild(divDom);
    // 下载文件
    document.getElementById("downLoadForm").submit();
    // 下载完了,需要删除该form,否则会生成多个form,一个小优化
    document.body.removeChild(divDom);

如果依然是预览效果,那么就是这个链接的问题了,找运维或者后台吧–_--

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值