关于这个主题的文档非常缺乏,除了他们的文档(http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html)之外,我找不到关于如何只保存数据库中的相对路径并在Web服务器上拥有实际图像的内容。 / p>
/**
* @ORM\Column(name="photo", type="blob", nullable=true)
*/
private $photo;
你是否在你的实体中声明并生成像常规变量那样的getter / setter?如何从控制器中的POST请求中获取数据并调用模型函数以将BLOB保存到数据库?
感谢。
答案 0 :(得分:0)
我从未尝试过doctrine documentation:
从数据库中检索的值始终转换为PHP 资源类型,如果没有数据则为null。
结合找到there的其他信息:
$stream = fopen($blobFromDcotrine,'rb');
stream_get_contents($stream);
答案 1 :(得分:0)
我已经在我的模型中解决了这个问题,其中' file'是执行POST请求时为文件指定的名称,&t; 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'));