本文实例讲述了PHP使用ajax的post方式下载excel文件。分享给大家供大家参考,具体如下:

项目需求,前端发起ajax请求,后端生成excel并下载,同时需要在header头中,带上token验证信息,参考了很多文章,最终实现如下:

相关学习推荐:php编程(视频)

PHP后端使用base64:

$filename = 'demo.xlsx';$objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel2007');ob_start();$objWriter->save("php://output");$xlsData = ob_get_contents();ob_end_clean();return Api::success(['filename' => $filename, 'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData)]);

JS前端:

$('.download').click(function(){    var url = "http://xxxx.com/group/bi/export";    var params = {      from_date: '2017-09-01',      to_date: '2017-09-08',      group_id: 1    };    $.ajax({      type:'POST',      url: url,      data: params,      beforeSend: function(request) {        request.setRequestHeader("Authorization", "token信息,验证身份");      },      success: function(redata) {        // 创建a标签,设置属性,并触发点击下载        var $a = $("<a>");        $a.attr("href", redata.data.file);        $a.attr("download", redata.data.filename);        $("body").append($a);        $a[0].click();        $a.remove();      }    });});

更多相关文章

  1. 详解php中抓取网页内容的实例
  2. php array_column()函数介绍(实例)
  3. 实例讲解php提交表单关闭layer弹窗iframe
  4. 分析ThinkPHP防止重复提交表单的方法实例
  5. php array_unshift()函数详解(实例)
  6. 详解php命令行写shell实例
  7. 分析php生成短网址/短链接原理和用法实例
  8. php array_combine()函数实例详解
  9. 实例详解PHP中 $_POST的$_GET的用法和区别

随机推荐

  1. 如何在JavaScript中对字符串排序
  2. 有没有办法检查两个数组是否具有相同的元
  3. 如何执行浏览器内对比扩展/规范化?
  4. JS数据类型(一)
  5. javascript高阶函数map和reduce
  6. 粗见之正则表达式
  7. 如何在Javascript中从Json数组创建路径路
  8. jQuery插件:如何将元素引用传递给回调函数
  9. 动态的JQUERY追加父子div。
  10. 在textarea上应用0高度div的类