#php #symfony #http-headers #symfony-2.3
#php #symfony #http-заголовки #symfony-2.3
Вопрос:
Я хочу использовать изображение в качестве ответа в Symfony 2.3.16
Итак, я делаю это в своем действии:
$image = $this->getDoctrine()->getRepository('MakoBackendBundle:Image')->find($id);
if($image !== null) {
/** @var $image Image */
$info = getimagesize($image->getAbsolutePath());
$content = file_get_contents($image->getAbsolutePath());
return new Response($content, 200, array(
'Content-Type' => $info['mime'],
'Content-Length' => strlen($content),
'Content-Disposition' => 'attachment;'
));
}
return new Response();
Мой вопрос в том, как я могу использовать это изображение с другим именем, например, хэш на основе времени или что-то в этом роде? Я хочу подавать его с другим именем, чем оно хранится на стороне сервера.
Ответ №1:
У Symfony2 есть помощник для этого. Это из документации.
use SymfonyComponentHttpFoundationResponseHeaderBag;
$d = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT, // disposition
'foo.pdf' // filename
);
$response->headers->set('Content-Disposition', $d);