Почему изображения из базы данных mysql отображаются как поврежденные?

Я сохранил изображение как тип данных blob в базе данных mysql, но когда изображение было получено, оно показывалось как испорченное изображение. Я не уверен, что не так со следующим кодом:

<?php
$msg = '';
if (isset($_POST['upload'])){
$image = $_FILES['image']['tmp_name'];
$img = file_get_contents($image);
$con = mysqli_connect('localhost','root','','mydatabase') or die('Unable To connect');
$sql = "insert into info (image) values(?)";

$stmt = mysqli_prepare($con,$sql);

mysqli_stmt_bind_param($stmt, "s",$img);
mysqli_stmt_execute($stmt);

$affected = mysqli_stmt_affected_rows($stmt);
if($affected==1){
$msg = 'Done';
}else{
$msg = 'Failed';
}
mysqli_close($con);
}
if (isset($_POST['show'])){
$id=2;
$con= mysqli_connect("localhost","root","","mydatabase");
$sql = "SELECT * FROM info WHERE id = $id";
$sth = $con->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
mysqli_close($con);
}
?>

0

Решение

Я нашел ошибку. просто изменил тип данных изображения, хранящегося в базе данных, на LONGBLOB вместо BLOB.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector