我应该如何构建响应对象,从Symfony2中的DB提供图像/附件


How I should construct Response object, to serve images/attachments from DB in Symfony2?

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的请求对象默认可用格式。可以在这里办理入住

祝你好运!