MVC Symfony2将图像保存为数据库中的blob


MVC Symfony2 save image as blob in database

关于这个主题的文档相当稀少,除了他们的文档,我找不到其他任何东西(http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html)关于如何在数据库中只保存相对路径并在Web服务器上具有实际映像。

/**
 * @ORM'Column(name="photo", type="blob", nullable=true)
 */
private $photo;

您是否在实体中声明了这一点,并像使用常规变量那样生成getter/setter?如何从控制器中的POST请求中获取数据并调用模型函数以将BLOB保存到数据库中?

谢谢。

我从未尝试过,但来自条令文档:

从数据库中检索的值总是转换为PHP的资源类型,如果不存在数据则为null。

结合其他信息:

$stream = fopen($blobFromDcotrine,'rb');
stream_get_contents($stream);

我已经在我的模型中解决了这个问题,其中"file"是执行POST请求时给文件的名称,"tmp_name"是PHP:给文件的临时文件路径

$content = file_get_contents($_FILES['file']['tmp_name']);
$user->setUserPhoto($content);
$this->em->persist($user);
$this->em->flush();

然后在控制器中返回一个响应:

return new Response(stream_get_contents($users->getUserPhoto($user)), Response::HTTP_OK, array(
        'Content-Type' => 'application/octet-stream'));