我需要在symfony 2应用程序中显示存储在我数据库中的图像。
我搜索过,我发现了例如:
Php Display Image Blob from Mysql
该行:
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
它对我不起作用。 如何返回图像文件并将其显示在用户的个人资料或图库页面中?
答案 0 :(得分:2)
我创建了这个搜索表格中blob数据的动作: Empleado 。
/**
* @Route("/employee/photo/{id}", name="zk_time_employee_photo", requirements={"id" = "\d+"}, defaults={"id" = 1})
*/
public function photoAction()
{
$request = $this->getRequest();
$workerId = $request->get('id');
if (empty($workerId))
//throw exception
$em = $this->getDoctrine()->getManager();
$repository = $em->getRepository('ZkTimeBundle:Empleado');
$photo = $repository->findPhoto($workerId);
if (empty($photo))
//throw exception
$response = new StreamedResponse(function () use ($photo) {
echo stream_get_contents($photo);
});
$response->headers->set('Content-Type', 'image/png');
return $response;
}
这部分是必不可少的(适用于两种格式,无论原始格式是否存储):
$response->headers->set('Content-Type', 'image/png');<br>
OR
$response->headers->set('Content-Type', 'image/jpeg');<br>
为了显示它,我选择了:
<img src="{{ asset(path('zk_time_employee_photo', {'id': employee.Id})) }}"/>
多个图像(轮播)或图库的基础相同。
我希望这会有所帮助,因为网络上有关于它的空结果或者没有关注Symfony2。主要是纯PHP。
Answer #1: symfony2-how-to-display-download-a-blob-field
Answer #2: symfony2-path-to-image-in-twig-template