来自数据库的图像未加载PHP PDO

时间:2018-10-15 13:39:43

标签: php mysql pdo phpmyadmin base64

我正在尝试加载存储在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">

您能找到我的错误吗?

2 个答案:

答案 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标记内。