Мне нужна моя страница 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 КБ
Ответы
Ответ 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 к пути, хранящемуся в базе данных.