2017-03-04 122 views
1

这是我的MySQL表crij_personne的结构:如何显示来自mysql数据库的图像?

  • ID
  • 照片LONGBLOB
  • IMAGE_NAME VARCHAR(64)

我的HTML代码如下:

<input type="file" name="photo" /> 

将图像上传到我的数据库的代码:

$imagetmp=addslashes (file_get_contents($_FILES['photo'] ['tmp_name'])); 
$image_name = addslashes($_FILES['photo']['image_name']); 
$imagetmp= base64_encode($imagetmp); 
$sql = "INSERT INTO crij_personne (description, photo, image_name) VALUES ('".$_POST['description']."','$imagetmp',' $image_name');"; 
if (mysqli_query($conn, $sql)) { 
     echo "New record created successfully"; 
} else { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
     } 

的网页上显示图像的代码是:

echo '<img height="300" width="300" src="data:image;base64, '.$row['photo'].'">'; 

但什么也没有发生......我做错了什么,很明显。 感谢您的帮助。

+0

你为什么使用base64_encode? – Shujaat

+0

看看这个文档,http://stackoverflow.com/questions/7793009/how-to-retrieve-images-from-mysql-database-and-display-in-an-html-tag –

回答

0

试试这个。

用于将值插入到数据库中。

$image_name = addslashes($_FILES['photo']['image_name']); 
$sql = "INSERT INTO crij_personne (description, photo, image_name) VALUES ('".$_POST['description']."','$imagetmp',' $image_name');"; 

if (mysqli_query($conn, $sql)) echo "New record created successfully"; 
else echo "Error: " . mysqli_error($conn); 

对于图像的检索从数据库中

$connectDb = mysqli_connect("localhost","root","password","DatabaesName"); //You need to replace with your own credentials 
$query= "SELECT * FROM crij_personne WHERE id = $id"; 
$sth = $connectDb ->query($query); 
$mysqli_fetch_array=mysqli_fetch_array($sth); 
header("Content-type: image/jpeg"); 
echo '<img src="data:image/jpeg;base64,'.base64_encode($mysqli_fetch_array['image_name']).'"/>'; 

,然后检索,我希望你能得到正确的输出。

+0

感谢您的快速回答。但什么是“$ db”? – nad

+0

@nad我有更新的代码。请现在检查它。 – Shujaat

+0

再次感谢,但黑色背景出现,我不知道为什么.... – nad

相关问题