Я не уверен, хотите ли вы вернуть только изображение для запроса или если вы хотите иметь возможность загружать несколько изображений из базы данных за один запрос и отображать их?
Я предполагаюпоследнее, так как вы говорите: «Я должен вывести данные на странице ».
Глядя на это быстро, я вижу два пути, по которым вы можете идти.Если двоичные данные являются допустимым изображением, и вы знаете тип, который вы можете просто сохранить в файл (возможно, на временном виртуальном диске, чтобы избежать записи на диск) и прочитать из этого файла, как обычно.Я, вероятно, не пошел бы по этому пути, хотя, поскольку у вас уже есть двоичные данные в вашей базе данных, и сохранение их в другом месте указывает на неправильный дизайн, и более правильным сценарием было бы сразу сохранить образ на диске и сохранить ссылку наэто в базе данных.
Итак, поскольку двоичные данные уже есть в базе данных, я бы пошел с загрузкой их непосредственно в тег изображения на вашей странице, используя base64 кодировка.
Псевдокод для этого будет выглядеть примерно так:
$imageData = getBinaryImageDataFromDb();
$imageData = base64_encode($imageData);
// in html
<img src="data:image/png;base64,<?php echo $imageData?>">
Поскольку вы не загружаете данные из файла, обычные функции, такие как mime_content_type () и т. д.не работает, так как кроме файла.И мы не хотим сохранять временный файл для этого.
Поэтому, чтобы проверить формат файла, вы можете проверить начальные байты и определить тип изображения, используя это.
JPEG: "\xFF\xD8\xFF"
PNG: "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a"