PHP отображает изображение BLOB из MySQL

Я пытаюсь отобразить изображение, сохраненное в столбце BLOB в базе данных;

Я беру данные из базы данных с помощью SELECT, не выполняю преобразований данных и не показываю их со следующим (из сценария, единственным выходом которого является следующий):

header("Content-Type: image/jpeg"); echo $image; 

Обратите внимание, что chrome отображает размер содержимого как правильный размер для изображения, а также правильный тип mime ( image/jpeg ). ничто не повторяет перед заголовком, а ive проверяет правильность блоба в базе данных. Также нет теневых пробелов до или после тегов <?php ?> .

chrome / IE отображает значок изображения, но не сам образ. есть идеи?

EDIT: изображение получает из базы данных как таковое:

 $sql = "SELECT * FROM products WHERE id = $id"; $sth = $db->query($sql); $row = $sth->fetch(); $image = $row['image']; 

var_dump ($ image) дает:

 string 'ÿØÿà JFIF  x x  ÿá ZExif  MM *           J        Q       Q      tQ      t     †   ±ÿÛ C  ÿÛ CÿÀ _" ÿÄ            ÿÄ µ   } !1AQa"q2'¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š'“”•–—˜™š¢£¤¥¦§¨©ª²³ ´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ        '... (length=60766) 

Попробуй вот так.

Вставка в БД

 $db = mysqli_connect("localhost","root","","DbName"); //keep your db name $image = addslashes(file_get_contents($_FILES['images']['tmp_name'])); //you keep your column name setting for insertion. I keep image type Blob. $query = "INSERT INTO products (id,image) VALUES('','$image')"; $qry = mysqli_query($db, $query); 

Для доступа к изображению From Blob

 $db = mysqli_connect("localhost","root","","DbName"); //keep your db name $sql = "SELECT * FROM products WHERE id = $id"; $sth = $db->query($sql); $result=mysqli_fetch_array($sth); echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>'; 

Надеюсь, это поможет вам.

Благодарю.

Это то, что я использую для отображения изображений из blob:

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

Поскольку я должен хранить типы содержимого varius в моем поле / столбце blob, предположим, чтобы обновить мой код следующим образом:

 echo "data: $mime" $result['$data']"; 

где: mime может быть изображением любого типа, текстом, текстовым документом, текстовым документом, pdf-документом и т. д. данные – это содержимое столбца blob