mysql — не удается отобразить изображение из базы данных в переполнении стека

Я использую Smarty, MySQL и я просто пытаюсь отобразить изображение.
Это ошибка, которую я получаю —

Ресурс интерпретируется как Image, но передается с MIME-типом text / html

Мой файл index.php

<img src="http://localhost/admin/image2.php?id={$editWine[0].id}" width="150" height="260" border="0" class="bottle-img" id="smallImageWineEdit" />

Мой файл image2.php

$id=$_REQUEST['id'];
$sql="SELECT * FROM table WHERE id=$id";
$result=mysql_query($sql) or die(mysql_error());
while($row=@mysql_fetch_assoc($result))
{
echo '<img src="data:image/jpeg;base64,'.base64_encode( $row['image_data'] ).'" width="150" height="150" /> &nbsp';
echo $row['image_data'];
}

Это эхо внутри цикла пока работает нормально.

И когда я проверяю элемент и открываю ссылку img в новой вкладке, изображение отображается. тогда как его не отображается на текущей странице.

0

Решение

Проблема в том, что вы снова доставляете теги html из файла изображения. Вам просто нужно вывести данные изображения с правильным типом содержимого изображения.

редактировать image2.php лайк

if($row=@mysql_fetch_assoc($result))
{
header('Content-type: image/jpg');
echo $row['image_data'];
exit();
}

обновить до комментариев ниже

Сделайте вышеуказанные изменения и запросите http://localhost/admin/image2.php?id=VALID_ID_HERE в браузере и проверьте, не переустанавливает ли изображение. Затем вы можете использовать его в теге src index.php чтобы показать это там. Если вы получаете ошибки при рендеринге изображения, когда вы запрашиваете его, убедитесь, что вы запрашиваете правильный идентификатор изображения в БД, и обновите вопрос сообщениями об ошибках, которые вы видите.

1

Другие решения

Других решений пока нет …