前后端分离下载文件的方法

1、form表单下载文件
function downloadFile(url){  
    var form=$("<form>");//定义form表单,通过表单发送请求  
    form.attr("style","display:none");//设置为不显示  
    form.attr("target","");  
    form.attr("method","get");//设置请求类型    
    form.attr("action",url);//设置请求路径  
    $("body").append(form);//添加表单到页面(body)中  
    form.submit();//表单提交  

2、iframe下载文件
function downloadFile(url) {     
    try{   
        var elemIF = document.createElement("iframe");     
        elemIF.src = url;     
        elemIF.style.display = "none";     
        document.body.appendChild(elemIF);     
    }catch(e){   
  
    }   

3、链接下载文件
<a href=”file.js”>file.js</a>  
//该方法火狐有些版本是不支持的  
window.location.href="htpp://www.baidu.com/test.rar"  
//为了解决火狐有些版本不支持,可以改成这种方式  
window.location="htpp://www.baidu.com/test.rar";   
//该方法在火狐上没有效果的,在IE浏览器上是可以的  
window.open("htpp://www.baidu.com/test.rar")  
4、ajax下载文件
function saveFile(url) {  
  return new Promise(function(resolve, reject) {  
    // Get file name from url.  
    var filename = url.substring(url.lastIndexOf("/") + 1).split("?")[0];  
    var xhr = new XMLHttpRequest();  
    xhr.responseType = 'blob';  
    xhr.onload = function() {  
      resolve(xhr);  
    };  
    xhr.onerror = reject;  
    xhr.open('GET', url);  
    xhr.send();  
  }).then(function(xhr) {  
    var a = document.createElement('a');  
    a.href = window.URL.createObjectURL(xhr.response); // xhr.response is a blob  
    a.download = filename; // Set the file name.  
    a.style.display = 'none';  
    document.body.appendChild(a);  
    a.click();  
    return xhr;  
  });  
}  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大浪淘沙胡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值