我遇到了一个我不理解的问题,我正试图用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;
}
我希望你得到这个主人,如果你需要更多信息请问。抱歉我的英语不好,缺乏练习。