使用foreach显示编码图像始终显示最后一个

时间:2016-07-03 22:21:59

标签: php image codeigniter foreach

我遇到了一个我不理解的问题,我正试图用foreach显示存储在oracle数据库中的图像。我成功使用这个echo '<img class="col-md-2 img-thumbnail" src="data:'.$value['IMGTYPE'].';base64,'.$value['IMAGE'].'"/>';逐个显示图像,但是当我尝试在foreach循环中显示所有图像时,它只显示最后一个。 我检查了foreach中的数据,它们是不同的,并且符合预期。

要显示图像,我开始在数据库中选择它并对其进行编码,创建我将要显示的数组:

$imgTab= $this->imgManager->SelectImages($this->session->IDUtil);
foreach($imgTab as $key => $img)
    $imgTab[$key]["IMAGE"]= encodeFlobImage($img["IMAGE"]);

function encodeFlobImage($img)
{
    return base64_encode(stream_get_contents($img));
}

foreach($imgTab as $value)
   echo '<img class="col-md-2 img-thumbnail" src="data:'.$value['IMGTYPE'].';base64,'.$value['IMAGE'].'"/>';

修改

这是选择功能:

public function SelectImgProfil($idUtil)
{
    $stmt = $this->Connect->prepare("SELECT image, imgType FROM ".$this->Table." WHERE IDUTIL = :idUtil AND PROFIL= 1");
    $stmt->execute(array(':idUtil' => $idUtil));
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    if (!$row)
        return array('IMAGE' => fopen(asset_url("images/anonymous.gif"), 'rb'), 'IMGTYPE' => 'image/gif');
    else
        return $row;
}

$ imgTab的print_r print_r of $imgTab

我希望你得到这个主人,如果你需要更多信息请问。抱歉我的英语不好,缺乏练习。

0 个答案:

没有答案