Я пытаюсь загрузить файл, когда пользователь нажимает ссылку на скачивание.
В контроллере:
$response = new Response();
$response->headers->set('Content-type', 'application/octect-stream');
$response->headers->set('Content-Disposition', sprintf('attachment; filename="%s"', $filename));
$response->headers->set('Content-Length', filesize($filename));
return $response;
Это открывает диалоговое окно для сохранения файла, но он говорит, что файл имеет 0 байтов. И изменив его на:
$response = new Response();
$response->headers->set('Content-type', 'application/octect-stream');
$response->headers->set('Content-Disposition', sprintf('attachment; filename="%s"', $filename));
$response->headers->set('Content-Length', filesize($filename));
$response->headers->set('Content-Transfer-Encoding', 'binary');
$response->setContent(readfile($filename));
return $response;
Я получаю кучу странных символов вместо диалогового окна загрузки файла.
Наконец, переключение строки "setContent" на:
$response->setContent(file_get_contents($filename));
Он возвращает ошибку PHP:
Неустранимая ошибка: допустимый размер памяти...
Любые подсказки о том, как этого достичь? Я сделал это раньше в PHP (с MVC), но я не знаю, чего не хватает, чтобы сделать это через Symfony2...
Возможно, решение задает memory_limit в PHP.INI, но я думаю, что это не лучшая практика...