我需要从一个页面进行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);
}
})
答案 0 :(得分:3)
$objWriter->save('export/FileName.xls');
并在你的ajax调用中使用它:
$objWriter->save('export/FileName.xls');
$.ajax({
})
简单的概念,ajax无法下载。然后,保存* xls文件,然后用JS下载该文件。 对不起我是初级程序员和我的英语不好.. 希望这对你有所帮助,祝你好运:)