Is it possible to set a custom filename when the file is returned by a Symfony2 controller using a BinaryFileResponse response?
Yes. The BinaryFileResponse
class has a method setContentDisposition()
that takes the file name as the second argument.
The first argument is the way the file should be delivered. It can be ResponseHeaderBag::DISPOSITION_ATTACHMENT
(or just the string "attachment"
) if the file should be offered for downloading, or ResponseHeaderBag::DISPOSITION_INLINE
(or "inline"
) if you want the file to be shown in the browser (you may want to do this with images, for example).
A full code example:
<?php use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\ResponseHeaderBag; $response = new BinaryFileResponse('/path/to/myfile'); $response->setContentDisposition( ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'file_name.txt' );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With