我試圖讓PHPExcel與Zend2一起工作。實際上它正在工作,但不是我想要的(我可以寫入文件,但不能在不保存的情況下下載)。我發現了一些例子,在那裏你只需做這樣的事情:Zend2中的PHPExcel控制器
$objPHPExcel = ....
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
和文件被允許下載。我如何在Zend2 Controller中實現類似的功能?我已經嘗試到目前爲止:
public function generateRaportAction()
{
$objPHPExcel = new PHPExcel();
$objPHPExcel->getActiveSheet()->setCellValue('B8', 'Some value');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$response = $this->getEvent()->getResponse();
$response->getHeaders()->clearHeaders()->addHeaders(array(
'Pragma' => 'public',
'Content-Type' => 'application/vnd.ms-excel',
'Content-Disposition' => 'attachment; filename="test.xls"',
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Content-Transfer-Encoding' => 'binary',
));
$objWriter->save('php://output');
return $response;
}
但它給了我「頁面上的回聲」輸出。我的第二次嘗試是:
$response->setContent($objWriter->save('php://output'));
但結果是一樣的。
你不能用'php:// output'替換服務器上的實際文件,然後將該文件設置爲響應內容嗎? –
我打算用「內存」方案來解決這個問題,而不是在服務器上保存。如果我找不到任何解決方案,那麼我想我會這樣做 – kamil
也許有一個去在這然後:http://stackoverflow.com/a/9480344/1053820 –