首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery和PHP:可以通过AJAX调用下载文件吗?

JQuery和PHP:可以通过AJAX调用下载文件吗?
EN

Stack Overflow用户
提问于 2021-05-12 05:30:48
回答 1查看 113关注 0票数 0

我有一个在表格中显示数据的网页,我想要添加的是一个按钮,用户可以单击该按钮将表格下载为Excel文件。我使用PHPExcel来制作Excel文件,在我真正开始下载文件之前,它似乎没有任何错误-似乎浏览器生成文件很好,但实际上并没有下载完成的文件。

我确实看过这个问题:phpexcel to download,但我尝试了答案说要做的事情,似乎没有改变任何事情。

这是我的前端代码("table.php"):

代码语言:javascript
运行
复制
<script>
$("#export-to-excel").click(function() {
            $.ajax({
                type: "GET",
                url: "table_create_excel.php",
                data: {
                    action: "exportToExcel",
                    tableRows: rows
                }
            });
}
</script>
<img src='excel-icon.png' id="export-to-excel"/>

下面是我的后端代码("table_create_excel.php"):

代码语言:javascript
运行
复制
    require_once "PHPExcel.php";
    $objPHPExcel = new PHPExcel();
    // ...
    // ... generate the excel document from the given data ...
    // ...
    $objPHPExcel->setActiveSheetIndex(0);
    
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="Table_Summary.xlsx"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');

我是不是遗漏了什么,如果我把它放进去,我的浏览器就会下载这个文件?问题是不是因为我正在进行AJAX调用,而不是直接链接到PHP页面?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-05-13 11:59:25

事实证明,我的怀疑是正确的,您不能使用AJAX下载文件。我所做的是去掉了JQuery的“单击”事件,并将其替换为“导出到Excel”图标周围的锚定标记,它有一个指向生成和下载Excel文件的PHP文件的链接,以及足够的参数,以允许PHP代码重新查询数据库并重建我想要导出的表,而不是将该表包含在发送的数据中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67494612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档