我尝试了其他类似问题中提出的许多解决方案,但似乎对我没有任何帮助。我已经在数据库中保存了一些Blob类型的图像,现在我想在项目中显示它们。我尝试的最后一件事是此解决方案Display image stored in BLOB database in symfony,但正在控制台中返回它:
获取数据:image / png; QzpceGFtcHBcdG1wXHBocDYwMTQudG1w net :: ERR_INVALID_URL
[任何人都可以提供帮助吗?如果需要代码,我可以提供任何东西。谢谢!
实体:
/**
* @ORM\Column(type="blob")
*/
private $image;
private $rawImage;
public function displayImage(){
if(null === $this->rawImage) {
$this->rawImage = "data:image/png;" . base64_encode(stream_get_contents($this->getImage()));
}
return $this->rawImage;
}
控制器:
public function marketplace (EntityManagerInterface $em, InfoRepository
$inforepo, TaleRepository $talerepo)
{
$infos = $inforepo->findAll();
if(! $infos){
$infos = '';
}
$images = $inforepo->findImages();
if(! $images){
$images = '';
}
$boxes = $talerepo->findAll();
if(! $boxes){
$boxes = '';
}
return $this -> render('home/marketplace.html.twig',[
'infos' => $infos,
'selected_boxes' => $boxes,
'images' => $images
]);
查看:
{% for info in infos %}
<img src="{{ info.displayImage }}" />
{{ info.getUrl() }}
{% endfor %}
如果对于“ displayImage”,如果该base64编码的字符串,您只需像这样更改视图:
{% for info in infos %}
<div>
<p>Taken from wikpedia</p>
<img src="{{ info.displayImage }}" alt="Red dot" />
</div>
{% endfor %}