Closed
Description
Q | A |
---|---|
Bug report? | yes |
Feature request? | no |
BC Break report? | no |
RFC? | no |
Symfony version | 3.2.1 |
Steps to reproduce:
- Create a controller that returns a StreamedResponse and create a route to it.
For example
class DefaultController extends Controller
{
/**
* @Route('/example')
*/
public function downloadSomewhatHugeFileAction()
{
$response = new StreamedResponse(function () {
$response = $this->get('webservice.thingy')->fetch()->getBody();
while (!$response->eof()) {
echo $response->read(1);
}
});
$disposition = $response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'file.csv');
$response->headers->set('Content-Disposition', $disposition);
return $response;
}
}
- Change your webapp entry point file to look something like this.
...
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
die('Handled but not sent yet');
$response->send();
$kernel->terminate($request, $response);
- Visit your new URL and see the response that you don't get if you returned a
Response
object instead