gpt4 book ai didi

php - 使用 ajax 调用下载文件

转载 作者:可可西里 更新时间:2023-11-01 13:33:41 25 4
gpt4 key购买 nike

我正在使用 PHPExcel 读取 excel 模板、填充数据并要求用户下载文件。

生成_excel.php

$objPHPExcel = PHPExcel_IOFactory::load("./template.xlsx");
//populate data ...
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');

当我直接从浏览器打开 generate_excel.php 时,会下载结果文件。但是,如果我对 generate_excel.php 进行 ajax 调用,则不会收到下载提示。使用 chrome 开发人员工具,我可以从网络选项卡中看到 ajax 调用已成功完成,并且在响应数据中可以看到一堆随机字符。我假设这是 excel 对象。

有谁知道如何使用ajax实现下载excel功能?我不想刷新页面。当用户点击“导出”按钮时,应该有一个对 php 文件的 ajax 调用并提示用户下载。

谢谢!

最佳答案

我想方设法用 ajax 将 JSON 数据传递给 PHP,并返回一个 excel 文件(MySQL 和 PHPExcel)供用户保存。我环顾四周,把一些碎片放在一起,希望它能帮助别人:

jQuery:

$("#exportBotton").on("click",function(event) {
event.preventDefault();
// create json object;
str_json = JSON.stringify({"key01":val01, "key02":val02, "key03":val03});
$.ajax({
type: "post",
data: str_json,
url: "../../includes/dbSelect_agentFormExport.php",
dataType: "json",
success: function(output){
// output returned value from PHP t
document.location.href =(output.url);
}
});
});

PHP:

 $str_json = file_get_contents('php://input');
$objPHPExcel = new PHPExcel();
// here i populated objPHPExcel with mysql query result.....

function saveExcelToLocalFile($objWriter){
// make sure you have permission to write to directory
$filePath = '../tmp/saved_File.xlsx';
$objWriter->save($filePath);
return $filePath;
}

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$response = array(
'success' => true,
'url' => saveExcelToLocalFile($objWriter)
);
echo json_encode($response);
exit();

关于php - 使用 ajax 调用下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com