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 相关文章推荐
mysql建立外键
Nov 25 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
php模板函数 正则实现代码
Oct 15 PHP
php eval函数用法总结
Oct 31 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
php实现四舍五入的方法小结
Mar 03 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
php中使用GD库做验证码
Mar 31 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 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 常用字符串函数总结
2008/03/15 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
音乐幼师求职信
2014/07/09 职场文书
党的群众路线调研报告
2014/11/03 职场文书
公司慰问信范文
2015/03/23 职场文书