2012-11-28 92 views
1

我寫婁代碼從數據庫如何在php中顯示數據庫中的圖像?

<?php 
mysql_connect("localhost","root",""); 
mysql_select_db("test"); 
$qry = "select id from image"; 
$res = mysql_query($qry) or die(mysql_error()); 
while($row = mysql_fetch_array($res)) 
{ 
    echo "<img src=image.php?id='$row[0]'>"; 
} 
?> 

Image.php

<?php 
$query = mysql_query("SELECT img FROM images WHERE id = ".$_GET['id']); 
$row = mysql_fetch_array($query); 
if($type=="pjpeg") 
$type="jpeg"; 
header("Content-type:$type"); 
echo $row['img']; 
?> 

顯示圖像,但是這是不行的。它顯示空白圖像圖標。

+0

如果您分析HTTP流量內容類型所做的頭說,你的形象? – Tobias

+0

我不知道如何知道? – Jaydipsinh

+0

你有一個Chrome瀏覽器或Firefox與螢火蟲插件?然後很容易在「網絡」選項卡中檢查它。查看轉到image.php?id =的請求,然後您應該看到服務器返回的內容。另外,還要確保你不前或 – Tobias

回答

7

您可能還use base64 encoding打造的形象。像

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAWgBaAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAAB..." /> 

UPDATE,base64編碼例如

你可以做到這一點很容易:

<?php 
$imageId = intval($_GET["id"]); 

$query = mysql_query("SELECT img FROM images WHERE id = ". $imageId); 
$row = mysql_fetch_array($query); 

$mime = null; 
// place $type init. here 
if ($type=="pjpeg") // <<< where do you get $type btw? 
    $mime = "image/jpeg"; 

$b64Src = "data:".$mime.";base64," . base64_encode($row["img"]); 
echo '<img src="'.$b64Src.'" alt="" />'; 
?> 
+0

但是如何在我的編碼中使用這個base64編碼? – Jaydipsinh

+0

@jay更新了我的答案。另外請注意,你有未初始化的變量,它將在內容類型中爲空 – nkamm

+0

謝謝,我通過這段代碼改變了我的image.php,但我仍然得到空圖像圖標:( – Jaydipsinh

1

jpeg不是有效的內容類型,應該是image/jpeg

+0

我想這也有,但是圖像不顯示..只有空白我得到的圖像圖標。 – Jaydipsinh

0

如上 +一定要傳遞replace = true參數到報頭的功能。

header('Content-Type: image/jpeg', true);

+0

我在頭文件函數中放置了真實的參數,但是我還沒有得到圖像..只有空白圖標出現 – Jaydipsinh

+0

以及當您直接在瀏覽器中打開實際圖像URL時看到什麼? – Tim

+0

這是我通過檢查元素 – Jaydipsinh

相關問題