Использую Zend Framework 2.4. Пытаюсь в action-е отдать файл. Делаю так:
public function downloadAction()
{
// $file = ...;
$response = new \Zend\Http\Response\Stream();
$response->setStream(fopen($file, 'r'));
$response->setStatusCode(200);
$response->setStreamName(basename($file));
$response->setContentLength(filesize($file));
$headers = new \Zend\Http\Headers();
$headers->addHeaderLine('Content-Type', 'application/octet-stream')
->addHeaderLine('Content-Disposition', 'attachment; filename="'.basename($file).'"')
->addHeaderLine('Content-Transfer-Encoding', 'binary')
->addHeaderLine('Content-Length', filesize($file))
->addHeaderLine('Cache-Control', 'must-revalidate')
->addHeaderLine('Pragma', 'public');
$response->setHeaders($headers);
return $response;
}
Файл существует и доступен для чтения. Но загружается битым (не открывается). Размер совпадает. В чем тут может быть проблема?