3

サーバーに保存されているExcelファイルをダウンロードする必要があります。しかし、ZF2 でのダウンロードの例が見つかりません。次のコードを試しています

$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 を試しましたが、未定義のメソッドでエラーが発生しました。また、「echo $response」を試しましたが、ヘッダー + バイナリ データの文字列出力をダンプするだけです。

4

1 に答える 1

4

MVCを使用すると、によってファイルのダウンロードを開始できますshort-circuiting(これを行うには、の代わりにインスタンスをMvcEvent返すだけです)。ResponseViewModel

次のスニペットの例は私のために機能します:

use Zend\Http\Headers;

(...)

$response = $this->getEvent()->getResponse();
$response->setHeaders(Headers::fromString("Content-Type: application/octet-stream\r\nContent-Length: 9\r\nContent-Disposition: attachment; filename=\"blamoo.txt\""));

$response->setContent('blablabla');

return $response;
于 2012-10-09T09:37:14.363 に答える