Symfony2抽象了请求和响应对象,我应该如何创建响应对象,为客户端文件附件提供服务,并为浏览器显示图像?
您可以简单地使用Response对象:
use Symfony'Component'HttpFoundation'Response;
并在其中设置Content-Type:
return new Response($image, 200, array('Content-Type' => 'image/png'));
您可以使用IgorwFileServeBundle,它允许您破坏响应抽象以获得性能。如果你正在使用nginx,你也可以利用它的XSendfile功能。
注意:Lighttpd和Apache有一个替代的XSendfile实现,有一些差异,目前还不支持。欢迎拉取请求
另一种解决方案可能是,图像不是请求对象上symfony2支持的格式之一。
也:
static protected function initializeFormats()
{
static::$formats = array(
'html' => array('text/html', 'application/xhtml+xml'),
'txt' => array('text/plain'),
'js' => array('application/javascript', 'application/x-javascript', 'text/javascript'),
'css' => array('text/css'),
'json' => array('application/json', 'application/x-json'),
'xml' => array('text/xml', 'application/xml', 'application/x-xml'),
'rdf' => array('application/rdf+xml'),
'atom' => array('application/atom+xml'),
'rss' => array('application/rss+xml'),
);
}
是Symfony的请求对象默认可用格式。可以在这里办理入住
祝你好运!