Просмотры base64 закодированный blob в HTML с PHP

с небольшим количеством проблем Im пытается посмотреть изображение с кодировкой base64, которое хранится на моем сервере как blob. Я хочу просмотреть это внутри либо с помощью тега изображения, либо отразить его как html-файл, с которым я могу ссылаться с тегом изображения.

Проблема в том, что данные blob ошибочно поступают с моего сервера.

<?php $select = "SELECT `data` FROM `sandbox`.`photos` WHERE `id` = 4 LIMIT 0 , 1"; $result = mysql_query($select, $connection); while($row = mysql_fetch_array( $result )){ $blob_data = $row[0]; echo "$blob_data"; } ?> 

Проблема заключается в том, что этот retuns 5.533782782 * E.

Как просмотреть это как изображение? Нужно ли мне деиндексировать его?

Попробуй это:

 echo '<img src="data:image/png;base64,'.base64_encode($blob_data).'">'; 

Вы можете использовать функцию mysql cast или convert . Вы также можете попробовать функцию bin2hex PHP.

Базы данных не являются творческими – они хранят данные, которые вы вставляете, в точности так же, как вы его вставляете, а затем извлекаете точные данные.

Это означает, что если вы кодируете данные в base64, прежде чем вставлять их, вам придется декодировать из base64, чтобы получить значимую информацию.


Примечание: вам, вероятно, лучше хранить файл как образ в файловой системе и путь к файлу в вашей базе данных, а не просто помещать изображение прямо в вашу базу данных

Вы можете использовать любой путь к файлу, который вы хотите, даже из-за пределов корневого каталога документа (хотя следует проявлять осторожность, чтобы не допускать обход / отображение конфиденциальных файлов):

 while($row = mysql_fetch_array( $result )){ $file_path = $row[0]; echo file_get_contents($file_path); }