显示Symfony 4的Blob型图像[关闭]

问题描述 投票:-1回答:1

我尝试了其他类似问题中提出的许多解决方案,但似乎对我没有任何帮助。我已经在数据库中保存了一些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 %}
php image symfony twig blob
1个回答
0
投票

如果对于“ displayImage”,如果该base64编码的字符串,您只需像这样更改视图:

{% for info in infos %}
    <div>
      <p>Taken from wikpedia</p>
      <img src="{{ info.displayImage }}" alt="Red dot" />
    </div>
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.