jquery 实现下载功能 (特殊情况)

此博客展示了使用JavaScript实现文件下载的代码。通过XMLHttpRequest对象发送POST请求,设置响应类型为blob,将参数以JSON格式发送。请求完成后,若状态为200,将响应转换为base64,创建a标签实现下载;若失败则提示错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var url = '/seimp/download'
var parmas = {
  filePath: data.filePath+data.fileName
}
   var xhr = new XMLHttpRequest();
   xhr.open('POST', url, true);
   xhr.responseType = "blob";
   xhr.setRequestHeader("Content-Type","application/json");
   xhr.send(JSON.stringify(parmas));
   xhr.onload = function () {
       // 请求完成
       if (this.status === 200) {
           // 返回200
           var blob = this.response;
           var reader = new FileReader();
           reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情href
           reader.onload = function (e) {
               // 转换完成,创建一个a标签用于下载
               var a = document.createElement('a');
               a.download = data.fileOriginName;
               a.href = e.target.result;
               $("body").append(a);    // 修复firefox中无法触发click
               a.click();
               $(a).remove();
           }
          
       } else {
           toastr["error"]("", "下载失败!");
   }
   };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值