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 相关文章推荐
php 获取全局变量的代码
Apr 21 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
php事务处理实例详解
Jul 11 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP闭包定义与使用简单示例
Apr 13 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 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
PHP使用header()输出图片缓存实例
2014/12/09 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
js玩一玩WSH吧
2007/02/23 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
多个jQuery版本共存的处理方案
2015/03/17 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
20招让你的Python飞起来!
2016/09/27 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
python opencv之SURF算法示例
2018/02/24 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
大学秋游活动方案
2014/02/11 职场文书
商业项目策划方案
2014/06/05 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
教师四风问题整改措施
2014/09/25 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python