1
バイト配列をREST APIから取得します。次に、このバイト配列からローカルファイルを作成します。そしてZF2でこのファイルをブラウザに送ることができます。バイト配列のZF2ストリーム
ZF2のコントローラのアクションの中からコード:
file_put_contents($fullpath, $rawPdf);
$headers = new \Zend\Http\Headers();
$contentDisposition = ($view == 'inline') ? 'inline': 'attachment';
$headers->addHeaders(array(
'Content-Disposition' => $contentDisposition . '; filename="' . basename($fullpath) . '"',
'Content-Type' => 'application/pdf',
'Content-Length' => filesize($fullpath),
'Expires' => '@0',
'Cache-Control' => 'must-revalidate',
'Pragma' => 'public'
));
$response = new \Zend\Http\Response\Stream();
$response->setStream(fopen($fullpath, 'r'));
$response->setStreamName(basename($fullpath));
$response->setStatusCode(200);
$response->setHeaders($headers);
return $response;
しかし、私は直接ローカルファイルを作成せずにブラウザにバイト配列を送信します。
バイト配列でストリーム($ response-> setStream())を設定するにはどうすればよいですか?ローカルファイルを作成せずにバイト配列でリソースを作成するにはどうすればよいですか?私はそれを行うことができ、昔ながらのPHPで
:
$rawPdf = '';
array_walk($byteArray, function($value) use (&$rawPdf) {
$rawPdf .= chr($value);
});
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="Bericht.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
echo $rawPdf;
を望むものに合うようにそれを適応させることができます。 – peterpeterson
ファイルを 'php:// output'と強制ダウンロードで書くことができます – ceadreak