POST 方式请求php导出Excel

5 篇文章 0 订阅
前言

常用的导出工具都是get请求方式,直接生成文件,那么在查询条件过多时,使用get方式,在url中传递参数,很显然不太合适,那么我们就要考虑通过POST传递参数

具体实现

1、采用PhpOffice/PHPExcel导出文件
2、主要就是生成文件部分,可以看到,是通过base64方式将文件传到前端,再由前端下载文件


        if (IS_POST){
            ob_start();
            $objWriter->save("php://output");
            $xlsData = ob_get_contents();
            ob_end_clean();
            $this->ajaxReturn(['filename' => $filename, 'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData)]);
        } else {
            $objWriter->save("php://output");
        }

3、前端代码示例,可以传递post参数:

function f() {
	var url = '';
    var params = {
        from_date: '2017-09-01',
        to_date: '2017-09-08',
        group_id: 1
    };
    $.ajax({
        type:'POST',
        url: url,
        data: params,
        success: function(redata) {
            // 创建a标签,设置属性,并触发点击下载
            var $a = $("<a>");            $a.attr("href", redata.file);
            $a.attr("download", redata.filename);
            $("body").append($a);
            $a[0].click();
            $a.remove();
        }
    });
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值