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

 更新时间:2019年08月06日 09:08:41   作者:cqingt  
这篇文章主要介绍了PHP使用ajax的post方式下载excel文件,结合简单示例形式分析了php后端Excel文件下载及前端ajax交互相关操作技巧,需要的朋友可以参考下

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

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

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();
      }
    });
});

更多关于PHP相关内容可查看本站专题:《PHP+ajax技巧与应用小结》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php实现批量修改文件名称的方法

    php实现批量修改文件名称的方法

    这篇文章主要介绍了php实现批量修改文件名称的方法,涉及php针对文件的遍历及文件名的替换操作相关技巧,需要的朋友可以参考下
    2016-07-07
  • php-cli简介(不会Shell语言一样用Shell)

    php-cli简介(不会Shell语言一样用Shell)

    刚才说到,我们可以用php来开发Shell程序。有的同学可能会问啦:php不是用来做网页的么?。是的,php可以用来做动态网页,并且当初php就是为做动态网页而开发的语言,但是理论上php可以用来做任何的程序,甚至是桌面程序
    2013-06-06
  • 深入理解PHP中的static和yield关键字

    深入理解PHP中的static和yield关键字

    这篇文章主要给大家介绍了关于PHP中static和yield关键字的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用php具有一定的参考学习价值,文章需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • 字符串长度函数strlen和mb_strlen的区别示例介绍

    字符串长度函数strlen和mb_strlen的区别示例介绍

    strlen和mb_strlen的区别,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别,下面与大家分享下两者之间的区别
    2014-09-09
  • ecshop 2.72如何修改后台访问地址

    ecshop 2.72如何修改后台访问地址

    这篇文章主要介绍了ecshop 2.72如何修改后台访问地址的方法,需要的朋友可以参考下
    2015-03-03
  • PHP分享图片的生成方法

    PHP分享图片的生成方法

    这篇文章主要介绍了PHP分享图片的生成方法,类似淘宝宝贝分享图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • PHP实现的贪婪算法实例

    PHP实现的贪婪算法实例

    这篇文章主要介绍了PHP实现的贪婪算法,简单说明了贪婪算法的概念、原理并结合实例形式分析了php实现贪婪算法的相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 为IP查询添加GOOGLE地图功能的代码

    为IP查询添加GOOGLE地图功能的代码

    我曾经做过一个IP查询的页面,可以比较详细的查到国内很多IP的所在地。前几天我把这个页面升级了一下,给它加了一个地图功能,这个功能来源于google地图开放的api,今天我就稍微简单的讲一下。
    2010-08-08
  • PHP中array_slice函数用法实例详解

    PHP中array_slice函数用法实例详解

    这篇文章主要介绍了PHP中array_slice函数用法,以实例形式详细分析了array_slice函数的具体含义及使用技巧,并以分页方法为例给出了具体的应用实例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • 浅谈PHP之ThinkPHP框架使用详解

    浅谈PHP之ThinkPHP框架使用详解

    这篇文章主要介绍了浅谈PHP之ThinkPHP框架使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07

最新评论