Изображение из базы данных не загружает PHP PDO - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь загрузить изображение, хранящееся в поле BLOB-объекта в базе данных MySQL.Все остальные поля, связанные с пользователем, работают.

Выборка в базу данных для изображения специально:

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 голосов
/ 15 октября 2018

Использовал base64_encode() перед добавлением изображения в базу данных и удалил функцию кодирования при рендеринге изображения, сохранил data:image/jpg;base64 внутри тега html.

0 голосов
/ 15 октября 2018

У вас не было base64_encode в тегах <?php ?>, поэтому он просто показывал, как текст 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">

или он будет работать без одинарных кавычек.

...