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 相关文章推荐
php5.2时间相差8小时
Jan 15 PHP
收集的php编写大型网站问题集
Mar 06 PHP
PHP读取xml方法介绍
Jan 12 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
php输出xml必须header的解决方法
Oct 17 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
php构造函数与析构函数
Apr 23 PHP
PHP构造二叉树算法示例
Jun 21 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
php mssql 时间格式问题
2009/01/13 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
php中apc缓存使用示例
2013/12/25 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
微信小程序tabBar用法实例详解
2017/12/04 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
一篇不错的Python入门教程
2007/02/08 Python
Python格式化压缩后的JS文件的方法
2015/03/05 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
学生打架检讨书
2014/02/14 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
安全横幅标语
2014/06/09 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
高三英语复习计划
2015/01/19 职场文书
社区安全温馨提示语
2015/07/14 职场文书
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技