Получение изображений из базы данных MySQL через PHP

Доброго времени суток, уважаемые читатели нашего блога! В первой статье по этой теме мы говорили как сохранить изображение в базе данных MySQL, используя PHP. Теперь давайте рассмотрим как извлечь сохранённый файл изображения из базы. Для этого нам нужно использовать два php файла, первый view_image.php:

// Сначала проверим определена ли переменная id
if (isset($_GET['id'])) {$id = $_GET['id'];}
  // Графический файл из базы данных извлекается простым SQL запросом
  // Где $id номер изображения
  $result = mysql_query("SELECT * FROM images WHERE id='$id'",$db);
 	...
  // Используем функцию printf для вывода кода
  printf ("img class='work_image' src="https://site.softmaker.kz/files/font>'>", $myrow["id"]);
  // Передаём параметр $myrow["id"] в файл get_image.php

Второй файл get_image.php:

// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет 
//передаваться файл изображения
// Сначала проверим определена ли переменная id
if ( isset( $_GET['id'] ) ) {
  // Здесь $id номер изображения
  $id = $_GET['id'];
  // Выполняем запрос и получаем файл
  $res = mysql_query("SELECT image FROM images WHERE id='$id'",$db);
  // Проверяем есть ли хотя бы одна запись
  if ( mysql_num_rows( $res ) == 1 ){
    $image = mysql_fetch_array($res);
 	// И  передаем сам файл
 	echo $image['image'];
  } 
}

Как видите, используя PHP, ничего сложного в извлечении файла из базы данных нет. Да и отправка файла пользователю осуществляется одним оператором, но перед отправкой файла необходимо, послать заголовок:

header("Content-type: image/*");

Этот заголовок, сообщает браузеру о том, что переданный файл является именно рисунком. Будьте внимательны! Передача заголовков возможна только до первого вывода информации, если перед заголовком в браузер была отправлена какая либо информация, например:

echo 'привет';

Тогда передача заголовка вызовет ошибку.

1 ответить
  1. Макс говорит:

    Всё плохо и не понятно потому что нет видео урока по этой теме для добавления и извлечения фото из базы. Хотя тема очень актуальная но я вероятно не буду тратить время на текстовые уроки так как на практике у меня будет с ними много ошибок в работе над сайтом и результата то же видимо не будет. Поэтому продолжаю искать видео уроки на эту тему. А здесь я долго не задержусь.

Комментарии закрыты.