从AJAX响应数据创建文件并强制下载

时间:2013-09-22 06:51:23

标签: ajax download phpexcel

我需要从一个页面进行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);
     }
 })

1 个答案:

答案 0 :(得分:3)

和我的一样。但我已经解决了这个问题,试试这个: 在你的php中使用它:

$objWriter->save('export/FileName.xls');

并在你的ajax调用中使用它:

$objWriter->save('export/FileName.xls');

$.ajax({


})

简单的概念,ajax无法下载。然后,保存* xls文件,然后用JS下载该文件。 对不起我是初级程序员和我的英语不好.. 希望这对你有所帮助,祝你好运:)