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


Posted in PHP onAugust 06, 2019

本文实例讲述了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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
php巧获服务器端信息
Dec 06 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
php多文件上传下载示例分享
Feb 20 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
php使用curl下载指定大小的文件实例代码
Sep 30 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
thinkPHP框架整合tcpdf插件操作示例
Aug 07 PHP
PHP中的自动加载操作实现方法详解
Aug 06 #PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 #PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 #PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 #PHP
thinkPHP5框架接口写法简单示例
Aug 05 #PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 #PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 #PHP
You might like
咖啡常见的种类
2021/03/03 新手入门
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
php-fpm中max_children的配置
2019/03/15 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
python调用shell的方法
2013/11/20 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
python中的decimal类型转换实例详解
2019/06/26 Python
Python列表切片常用操作实例解析
2019/12/16 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
python模块内置属性概念及实例
2021/02/18 Python
美国本地交易和折扣网站:LocalFlavor.com
2017/10/26 全球购物
安全宣传标语
2014/06/10 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
个人债务授权委托书
2014/10/17 职场文书
机关职员工作检讨书
2014/10/23 职场文书
培训师岗位职责
2015/02/14 职场文书
应届毕业生求职信范文
2015/03/19 职场文书