![](/img/trans.png)
[英]Is this set up possible to enable file download on a ajax call in PHP?
[英]JQuery and PHP: is it possible to download a file via an AJAX call?
我有一个 web 页面,它在表格中显示数据,我想添加一个按钮,用户可以单击该按钮将表格下载为 Excel 文件。 我使用 PHPExcel 制作 Excel 文件,在我真正下载文件之前它似乎没有错误 - 浏览器似乎生成文件很好,但实际上并没有下载完成的文件。
我确实在这里查看了这个问题: phpexcel to download ,但我尝试了答案所说的,它似乎没有改变任何东西。
这是我的前端代码(“table.php”):
<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”):
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 页面吗? 谢谢。
原来我的怀疑是正确的,你不能使用 AJAX 下载文件。 我所做的是摆脱了 JQuery “点击”事件,并将其替换为“导出到 Excel”图标周围的锚标记,该标记具有指向 PHP 文件的链接,该文件生成并下载了 ZC1D81AF5835844B4E9D936910 文件,以允许使用足够的参数来下载 ZC1D81AF5835844B4E9D936910 文件PHP 代码重新查询数据库并重建我想要导出的表,而不是将表包含在发送的数据中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.