2012-04-17 83 views
-3

當我試圖在一個單獨的分區中回顯它時,從MySQL服務器中選擇一個jpg圖像後,當我使用這個時出現ascii字符的混雜:'在一個div中回顯一個圖像在php中失敗

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="image/jpeg; charset=UTF-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 

<div id = "myDiv"> 
<h2>Div</h2> 
<?php 
    require_once('appvars.php'); 
    require_once('connectvars.php'); 
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $id = 1; 
    $query = "SELECT image FROM images WHERE id=?"; 
    $stmt = $dbc->prepare($query); 
    $stmt->bind_param("i",$id); 
    $stmt->execute(); 
    $stmt->store_result(); 
    $stmt->bind_result($image); 
    $stmt->fetch(); 
    echo $image; 
?> 
</div> 
</body> 
</html> 

在此先感謝您的幫助!

+0

將其嵌入到頁面中我非常確定'echo $ image;'完美地工作。也許你應該寫下你想問的問題? (非常好意味着它出現爲ASCII字符的混雜,所以這是正確的。如果計算機上的東西不會在可接受的邊界上被破壞)。 – hakre 2012-04-17 00:42:11

+0

我想知道是否有數據庫中的圖像路徑周圍的HTML代碼。 – Philipp 2012-04-17 00:43:28

回答

0

瀏覽器不瞭解它在您所回顯的「div」中的圖像。您必須將此PHP腳本分開並使用<div><img src="/path/to/script.php"></div>。這將告訴瀏覽器該內容是一個圖像。

2

呃...所以...你是發送HTML還是圖像?你不能同時發送!

(當然,你可以通過一個data:網址,但不是很大支持舊的IE)

通過它的外觀,你使用HTML的唯一原因是設置內容類型頭。在這種情況下,你只需要PHP:

header("Content-Type: image/jpeg"); 

如果你真的想嵌入HTML圖像,請嘗試:

echo "<img src=\"data:image/jpeg;base64,".base64_encode($image)."\" />"; 
0

你在這裏混了安靜了許多。首先你有一個錯誤的內容描述符的HTML文件。其次你不能將原始圖像數據發送到HTML文檔。 - 你需要base64編碼它之前。

0

首先,我不能說我推薦你將圖像或其他大型二進制文件存儲在數據庫中 - 你可能會更好地將它們存儲在文件系統中,並將它們的路徑存儲在D B。

其次,你不能只是脫口而出的圖像數據在頁面中間。您需要使用HTML <img>標籤。正如Kolink上面所說的,你可以在HTML中嵌入圖像,但我不建議這樣做,因爲它意味着它永遠不會被緩存。讓服務器在不同的URL上提供圖像,並使用<img src="path/to/image" alt="Alternate text here" />

相關問題