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

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

本文实例讲述了PHP使用ajaxpost方式下载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使用ajax的post方式下载excel文件简单示例的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/40752.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
php学习php学习订阅用户
上一篇 2022年6月15日 23:51
下一篇 2022年6月15日 23:51

相关推荐

  • 如何使用PHP和JavaScript构建在线编辑器。

    随着网络技术的不断发展,越来越多的人开始使用在线编辑器编辑文本、代码等内容。如果您是一名开发人员,您可能会想要了解如何使用PHP和JavaScript构建您自己的在线编辑器。本文将介绍一些基本的步骤和技术,帮助您…

    2023年5月30日
    01
  • 聊一聊PHP中单元测试工具PHPUnit的用法

    单元测试是指对软件中的最小可测试单元进行检查和验证。本篇文章带大家了解一下php如何实现单元测试,介绍一下安装单元测试工具PHPUnit并使用的方法。朋友,你听说过安。。。不是,写过单元测试吗。单元测试是开发…

    2023年3月29日
    07
  • 全面指南:使用PHP开发直播功能的步骤。

    随着直播技术的不断发展,直播平台也逐渐普及,对于开发者来说,掌握如何使用PHP开发直播功能是一项非常有价值的技能。那么,你想知道使用PHP开发直播功能的步骤吗?下面是一份全面指南,让你轻松掌握。第一步:选…

    2023年5月23日
    010
  • php使用ftp实现文件上传与下载功能(附代码)

    ftp文件上传 php自带有ftp操作的函数包,一个比较简单实现的ftp文件上传操作可以通过以下几个步骤来完成: 1、确认ftp server的ip地址与port端口信息(如果使用的是默认端口则可以不关心); 2、进行ftp_connect操…

    2018年3月22日
    0313
  • 关于php二进制的说明

    说明:二进制由0和1构成的一个32位的数字,逢二进一; 二进制:0和11111111 11111111111111111111111 10进制的5对应的二进制:00000000  00000000  00000000  00000101

    2017年12月8日
    0210
  • Cookie的应用案例

    显示用户访问时间,如果是第一次访问服务器,显示第一次访问,时间为xxx;如果是不是第一次访问,则显示上次访问时间为xxx 思考:想要读取到上次访问这个页面时的时间,由于http协议无状态的,所以默认情况下无法读…

    2018年9月13日 PHP自学教程
    0249
  • PHP8.0中的时间戳处理库:Chronos

    随着现代互联网应用的日益复杂和对实时性的要求越来越高,时间戳处理成为了一个非常重要的问题。在PHP语言中,时间戳处理一直以来都是一个比较棘手的问题,因为PHP原始的时间函数库存在众多不足和限制。但是,随着P…

    2023年5月19日
    07
  • Redis和PHP的速度对比。

    Redis是一款高性能的缓存数据库,被广泛地用于提升Web应用程序的性能。它以其高速读取和写入数据的能力,以及良好的可扩展性而受到Web开发人员的青睐。而PHP是一门流行的Web编程语言,以其易学易用、开发效率高等特…

    2023年5月21日
    04

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息