TP框架使用ajax的post请求方式下载文件

详细流程不展示了 直接展示 最后下载的

//主要流程
//主要流程
//主要流程
//主要流程

//把文件转成文件流的形式

        ob_start();
        $xlsData = ob_get_contents();
        ob_end_clean();
        $data = [
            'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData),
            'file_name' => $fileName //文件名称加后缀
        ];
        exit(json_encode(['code' => $this->successCode, 'message' => '操作成功', 'data' => $data]));

ajax前端处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input class="id" type="number" value = '22'>
<input class="start_time" type="date">
<input class="end_time" type="date">
<button class="b">点击</button>
</body>
</html>
<script src="https://cdn.staticfile.org/jquery/3.1.1/jquery.min.js"></script>
<script>
    var url = "https://********/admin/finance/code_pay_bill";
    $('.b').click(function () {
        var data = {
            'drugstores_id':$('.id').val(),
            'start_time':$('.start_time').val(),
            'end_time':$('.end_time').val(),
        }
        $.ajax({
            type: 'post',
            data: JSON.stringify(data),
            url: url,
            success: function (redata) {
                var result = JSON.parse(redata) //如需要 把json转数组
            	//主要代码
            	//主要代码
            	//主要代码
                var $a = $("<a>");
                $a.attr("href", result.data.file);
                $a.attr("download", result.data.file_name);
                $("body").append($a);
                $a[0].click();
                $a.remove();
            }
        })
    })
</script>
上一篇:ajax-demo 示例学习


下一篇:Gecco抓取实例