В этой теме нет недостатка в учебниках и примерах .
По сути, вы пытаетесь задействовать два файла PHP, а не только тот, который у вас есть.Вам понадобится один для страницы и один для изображения (которое можно повторно использовать для всех изображений).
Начните с просмотра HTML-кода, отображаемого для вашей страницы.Что такое тег img
?Он ищет ресурс (файл изображения) на сервере, которого там нет, поэтому, естественно, он ничего не отображает.Журналы вашего сервера также покажут вам 404 ошибки для этих запросов изображений.
Это потому, что изображение на самом деле не является частью страницы.Это совершенно отдельный ресурс, на который ссылается страница, задача браузера - поставить его на место.Поэтому вам нужно создать отдельный ресурс (файл PHP) для обслуживания этого изображения.
Мой PHP немного устарел, поэтому я расскажу о многих примерах и учебных пособиях в Интернете для уточнения.Но структура в основном будет такой:
Страница A, страница хоста:
Извлечение из базы данных информации об изображении.Его идентификатор, текст alt
, если применимо, и т. Д. Используйте эту информацию для создания тега img
.Что-то вроде:
echo '<img src="/images/dbimage.php?id=' . $id_from_db . '" alt="' . $alt_from_db . '"/>';
Страница B, страница изображения:
Получите фактическое изображение (BLOB-объект) из БД и его тип содержимого, если оно также является динамическим.Запишите no output до того, как это будет сделано.Установите тип содержимого заголовка ответа на тип содержимого изображения, запишите необработанные байты изображения в качестве вывода, завершите вывод.
Главное, что нужно запомнить, еще разявляется то, что изображение не отправляется в браузер как часть страницы.Это совершенно отдельный ресурс, извлекаемый из совершенно отдельного запроса к серверу.Вам просто нужно обработать этот запрос отдельно от самой страницы.
(Обратите внимание, например, что если вы затем перейдете к URL-адресу, созданному для тега img
, то сервер отобразит только изображение.страница хоста не нужна.)