#javascript #php #database #image #xhtml
#javascript #php #База данных #изображение #xhtml
Вопрос:
Я пытаюсь отобразить изображение большого двоичного объекта, хранящееся в базе данных, я не получаю никаких ошибок, но изображение не отображается, я просто получаю значок по умолчанию «без изображения». Вот мой код:
<script>
function showEmpimg(str) {
var xhttp;
if (str == "") {
document.getElementById("user-id").innerHTML = "";
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 amp;amp; this.status == 200) {
document.getElementById("face").innerHTML = this.responseText;
}
};
xhttp.open("POST", "getimage.php?q=" str, true);
xhttp.send();
}
</script>
</head>
<body>
<div id="face" class="face">
</div>
<input type="text" class="form-control" id="user-id" placeholder="ID" name="emp_id" onchange="showEmpimg(this.value)" required maxlength="6" />
И php-файл:
<?php
$db = mysqli_connect("localhost","root","test1","dar");
$sql = "SELECT emp_img FROM employees WHERE emp_id LIKE 'q'";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['emp_img'] ).'"/>';
?>
Есть идеи?
Комментарии:
1. Что это за содержимое
$result['emp_img']
?2. Это должен быть файл BLOB .jpg. Из базы данных. При проверке кода после выполнения в img src отображается «данные: изображение / jpeg; base64», но не все остальное.
Ответ №1:
Решаемая:
$db = mysqli_connect("localhost","root","test1","dar");
$sql = "SELECT * FROM employees WHERE emp_id=" . intval($_GET['q']);
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
//var_dump($result);
echo '<img class="face" src="data:image/jpeg;base64,'.base64_encode( $result['emp_img'] ).'"/>';