Подтвердить что ты не робот

Мне нужна моя страница PHP, чтобы показать мой образ BLOB из базы данных mysql

Итак, мой последний вопрос заключался в том, как показать мой технический идентификатор из поиска:

Я пытаюсь получить мою "Детали" чтобы ссылаться на две отдельные части моего сервера, которые связаны через techID

Мой новый вопрос по-прежнему находится на этой странице. Я добавил также эхо-изображение. но у меня возникли проблемы с использованием Blob и с отображением моего изображения, а не двоичных данных JPEG. Я пытался найти другой экземпляр этого, но не могу найти исправление моей ошибки.

//Header ('Content-type: image/jpeg')
echo "<dt><strong>Technician Image:</strong></dt><dd>" . '<img src='.$row2['image'].' width="290" height="290">' . "</dd>";

и

$query_Recordset2 = "SELECT * FROM technician WHERE techID=" . $row1["techID"] ;
$Rs2 = mysql_query($query_Recordset2) or die(mysql_error());

Единственные изменения, которые я внес в мой последний вопрос (очевидно, включая исправление, которое мне было дано сработало).

Я не понимаю, где и как положить 'Content-type: image/jpeg', чтобы моя страница распознала связанное изображение, это MIME TYPE image/jpeg.

Что я вижу на своей странице, это

Техник: Eji` = 7е $Do "bCkkcR ^ М, п ~ 0 & м) JR Е) JDRE) JDRE) JDRE) JDRE) JDRE) JDSjR) + N.R, U IN9, QX ~ {( ̮: 2 12" aV7 6 { LP [ W گ R $+ LMc'hM5oPA | ګ +0,8 EģRn 1 [{3 > rYX; Ǖuz'vfN 葟 z Qk 3 O ܨ ۀ? S, N [{+ D ; '$$ & iJR) JR) JR) JR) JR) JR) JR) JR) JR) JR ) JR) JR) width = "290" height = "290" >

Очевидно, я удалил средний кусок, чтобы он не массивный. есть небольшое окно "Сломанное изображение", которое появляется напротив, и когда я нажимаю правой кнопкой мыши и выбираю "Открыть изображение в новом окне", URL-адрес, который он помещает, просто Content-type: или я получаю страницу запрещенного доступа с URL-адресом http:// localhost/Sim5Server/Pages/%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%10JFIF%EF%BF%BD%01%02%EF%BF%BD%EF%BF%BDd%EF%BF%BDd%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BDC%EF%BF%BD

Я разместил пробел в этом URL-адресе, так как это не ссылка для Интернета.

Я использовал обычный BLOB-тип, так как мне просто нужно его как маленькое изображение менее 64 КБ

4b9b3361

Ответ 1

В вашем текущем случае у вас есть две опции upfront.

Первый, и тот, который я не рекомендую, если у вас есть многочисленные изображения, подобные этому, заключается в использовании встроенной кодировки base64. Это делается с помощью:

<img src="data:image/jpeg;base64,<?php echo base64_encode($image); ?>" />

Скопируйте/вставьте версию, используя существующий код:

echo '<dt><strong>Technician Image:</strong></dt><dd>'
     . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">'
     . '</dd>';

Второй способ - создать "образный" PHP файл, который принимает идентификатор изображения в базе данных в качестве параметра строки запроса и выводит изображение. Итак, ваш HTML будет выглядеть примерно так:

<img src="image.php?id=<?php echo $image_id; ?>" />

И ваша страница PHP будет выглядеть примерно так:

<?php
$id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0;
$image = getImageFromDatabase($id); // your code to fetch the image

header('Content-Type: image/jpeg');
echo $image;
?>

Ответ 2

Единственный способ вывода изображения с той же страницы, что и документ, с данным uri.

echo "<dt><strong>Technician Image:</strong></dt><dd>" . 
     '<img src="data:image/jpeg;base64,'.
      base64_encode($row2['image']).
      '" width="290" height="290">' . "</dd>";

Ответ 3

Правильный код должен быть следующим. Вы должны использовать stream_get_contents() для изменения идентификатора ресурса в строке.

<img src="data:image/jpeg;base64,<?php echo base64_encode(stream_get_contents($row2['image'])); ?>" />

Ответ 4

Я думаю, что лучшим решением является сохранение пути изображения в базе данных, а не сохраняя все изображение как BLOB. А затем для показа изображения на веб-странице установите src свойства тега img к пути, хранящемуся в базе данных.