2017-03-04 123 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

相關問題