我需要从页面进行 AJAX 调用,将一些 JavaScript 数据发送到 PHP 文件,该文件会根据该数据创建一个文件。然后我希望用户下载这个文件。
那么,是否可以通过 AJAX 请求强制下载由 PHP(在我的情况下特别是 PHPExcel)创建的文件?
下面显示的代码尚未发送任何 JavaScript 数据,但会生成一个文件。
这是我的 PHP 脚本,它使用 PHPExcel 创建一个文件:
public function renderTasksToExcel($tasksData){
$objPHPExcel = new PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("TRW");
// ...
// Add some data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Hello');
// ...
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Save Excel 2007 file
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$file = '/export.' . date('Y-m-d-H-i-s').'.xlsx';
$objWriter->save($file);
// hotovo
return $this->sendResponse(new FileResponse($file));
}
这是 AJAX 调用:
$.ajax({
type: "POST",
url: {plink Tasks:tasksToExcel},
data: ajaxData,
success:function(data){
$('#download').html(data);
}
})