2012-10-09 60 views
3

我需要下載存儲在服務器上的excel文件。但我無法找到ZF2下載的示例。我正在嘗試以下代碼通過Zend下載excel文件

$response = new Response(); 
$response->getHeaders()->addHeaders(array(
    'Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 
    'Content-Disposition' => 'attachment;filename="forecast_template.xlsx"', 
    'Cache-Control' => 'max-age=0', 
)); 
$response->setContent(file_get_contents($xlsx_file_name)); 

但它沒有奏效。我嘗試了setRawBody,但這給未定義的方法帶來了錯誤。此外,我嘗試「回聲$迴應」,但只是轉儲字符串輸出頭+二進制數據。

+0

是否使用MVC? –

+0

是的,我正在使用ZF2 MVC。這是代碼是我的控制器操作的一部分。 –

回答

4

使用MVC,您可以通過short-circuiting啓動文件下載的MvcEvent(要做到這一點,只返回Response實例,而不是ViewModel的)。

下面的示例代碼段爲我工作:

​​
+0

是的,它工作正常。感謝代碼 –