我正在尝试加载存储在mysql数据库的blob字段中的图像。与用户连接的所有其他字段都在工作。
专门从图像中获取数据库的信息是:
public function singleIMG(){
$this->execute();
return $this->stmt->fetch(PDO::FETCH_ASSOC);
}
我的用户模型中的查询功能是:
public function getJobImg($ekspert_id){
$this->db->query("SELECT * FROM eksperti WHERE id = :id");
$this->db->bind(':id', $ekspert_id);
$row = $this->db->singleIMG();
extract($row);
return $row;
}
我在控制器中获取数据:
$template->img = $job->getJobImg($job_id);
最后,它不会加载视图:
<img src="data:image/jpg;base64,'.base64_encode($img['profile_img']).'" height="200" width="200" class="img-thumnail">
您能找到我的错误吗?
答案 0 :(得分:0)
您在<?php ?>
标记中没有base64_encode,因此它只是显示为文本base64_encode($img['profile_img']);
<img src="data:image/jpg;base64, <?php echo base64_encode($img['profile_img']); ?>" height="200" width="200" class="img-thumnail">
应该工作。我不熟悉使用bas64作为图像,所以我不确定您是否需要像这样编写它:
<img src="data:image/jpg;base64,'<?php echo base64_encode($img['profile_img']); ?>'" height="200" width="200" class="img-thumnail">
或者是否可以使用双引号。
答案 1 :(得分:0)
在将图像添加到数据库之前使用base64_encode()
,并在渲染图像时删除了编码功能,将data:image/jpg;base64
保留在html标记内。