当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP使用ajax的post方式下载excel文件简单示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-09 15:20:12 浏览: 评论:0 

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

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

PHP后端使用base64:

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

JS前端:

  1. $('.download').click(function(){ 
  2.     var url = "http://xxxx.com/group/bi/export"
  3.     var params = { 
  4.       from_date: '2017-09-01'
  5.       to_date: '2017-09-08'
  6.       group_id: 1 
  7.     }; 
  8.     $.ajax({ 
  9.       type:'POST'
  10.       url: url, 
  11.       data: params, 
  12.       beforeSend: function(request) { 
  13.         request.setRequestHeader("Authorization""token信息,验证身份"); 
  14.       }, 
  15.       success: function(redata) { 
  16.         // 创建a标签,设置属性,并触发点击下载 
  17.         var $a = $("<a>"); 
  18.         $a.attr("href", redata.data.file); 
  19.         $a.attr("download", redata.data.filename); 
  20.         $("body").append($a); 
  21.         $a[0].click(); 
  22.         $a.remove(); 
  23.       } 
  24.     }); 
  25. });

Tags: ajax post excel

分享到: