显示BloB图片Symfony 2

时间:2014-12-11 21:57:21

标签: symfony twig blob

如何使用symfony2和twig显示保存在BD中的BloB图片。

帮助PLZ。

我的实体形象:

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $id;

/**
 * 
 * 
 * @ORM\Column(name="img", type="blob", nullable=false)
 */
private $img;

 /**
 * @var string
 *
 * @ORM\Column(name="titre", type="string", nullable=false)
 */
private $titre;

/**
 * 
 * @Assert\File(maxSize="6000000")
 * 
 */
private $file;

我想在没有创建目录的情况下显示图片来载入文件

1 个答案:

答案 0 :(得分:1)

您应该定义用于检索图像的新路线和控制器。像这样:

# routing.yml
my_image_route:
    pattern: /images/{id}
    defaults: {_controller: AcmeDemoBundle:Default:some}

和控制器:

<?php
namespace Acme\DemoBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class DefaultController extends Controller
{
    public function someAction($id)
    {    
        $em = $this->get('doctrine')->getManager();
        $image_obj = $em->getRepository('AcmeDemoBundle:Image')->find($id);
        return new Response(
            $image_obj->getImg(),
            Response::HTTP_OK,
            array('content-type' => 'image/jpeg');
        }
}

并在模板中简单地生成此路线

{{ path('my_image_route', {'id': image.id}) }}