Получение изображений из базы данных 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 'привет';
Тогда передача заголовка вызовет ошибку.
Всё плохо и не понятно потому что нет видео урока по этой теме для добавления и извлечения фото из базы. Хотя тема очень актуальная но я вероятно не буду тратить время на текстовые уроки так как на практике у меня будет с ними много ошибок в работе над сайтом и результата то же видимо не будет. Поэтому продолжаю искать видео уроки на эту тему. А здесь я долго не задержусь.