Получить изображение BLOB-объекта из таблицы и отобразить его с помощью php sqlite3

Я знаю, что этот вопрос задавали много раз, но я не смог решить его, используя ни один из них. Я новичок в sqlite и не могу понять, что я делаю неправильно.

ЧТО Я ПРОБОВАЮ

Я пытаюсь сделать страницу просмотра профиля. Я могу получить все данные из своей базы данных sqlite, но не могу отобразить изображение своего профиля.

СТРУКТУРА ТАБЛИЦЫ

    **username|landline|mobile|email|profilepicture**

         john |xxxxxxxx|xxxxxx|[email protected]|blob

ЧТО Я ПРОБОВАЛ

  $sql = "SELECT * FROM profile";
  $query = $db->query($sql);
  while($row = $query->fetchArray(SQLITE3_ASSOC) ){
  echo "NAME = ". $row['user_name'] . "<br/>";
  echo "LANDLINE = ". $row['user_landline'] ."<br/>";
  echo "MOBILE = ". $row['user_mobile'] ."<br/>";
  echo "EMAIL =  ".$row['user_email'] ."<br/>";
  header('Content-Type: image/png');
  echo $row['user_profile_picture'];
  }


  <html>
  <img src='profile.php?imgid=<?php echo $row['user_profile_picture'];?>'/>
  </html>

Но изображение не отображается, а также остальные данные не отображаются, когда я помещаюheader('Content-Type: image/png');


person Avinash    schedule 06.06.2013    source источник


Ответы (1)


Создайте файл image.php:

<?php 
$sql = "SELECT user_profile_picture FROM profile WHERE id = " . $_GET['id'];
$query = $db->query($sql);
$row = $query->fetchArray(SQLITE3_ASSOC);

header('Content-Type: image/png');
echo $row['user_profile_picture'];

В профиле.php:

<img src='image.php?id=<?php echo $row['id'];?>'/>
person HarryFink    schedule 06.06.2013
comment
‹img src='image.php?id=‹?php echo $row['id'];?›'/› что это значит. в основном что такое id - person Avinash; 06.06.2013
comment
Я предполагаю, что у вас есть столбец идентификатора (первичный ключ) в вашей таблице. - person HarryFink; 06.06.2013
comment
это поддерживается только в том случае, если изображение png? - person GAME ON; 07.02.2019
comment
Нет, вы также можете сохранить тип изображения в БД во время загрузки. - person HarryFink; 14.02.2019