2011-09-29 97 views
0

,這裏是我的圖像顯示的代碼 -不能在PHP中顯示圖像

$username = "xxxxxxxx"; 
$password = "xxxxxxxx"; 
$host = "000.001.000.000"; 
$database = "xxxxxxxx"; 

@mysql_connect($host, $username, $password) or die("Can not connect to database:   ".mysql_error()); 
@mysql_select_db($database) or die("Can not select the database: ".mysql_error()); 
$query = mysql_query("SELECT mimetype, Image FROM table ORDER BY id DESC LIMIT 0,1"); 
$row = mysql_fetch_array($query); 
$content = $row['Image']; 
header('Content-type: image/jpg'); 
echo $content; 

這是我得到

的圖像錯誤「HTTP:// WWW ....」無法顯示因爲它包含錯誤。

有什麼不對?在mysql中字段的數據類型是MEDIUMBLOB

+0

圖像文件有多大?它在被添加到數據庫之前是否被編碼(例如,mysql_escape_chars?)? – Rasika

+0

什麼樣的錯誤? –

+2

你確定你所顯示的圖片是JPEG嗎?你正在獲取mimetype和image,但是沒有使用mimetype - 它告訴我你可能會存儲多個文件類型(gif/jpg/png等等) – dan

回答

1

OK,第一個測試,看看發生了什麼:

$username = "xxxxxxxx"; 
$password = "xxxxxxxx"; 
$host = "000.001.000.000"; 
$database = "xxxxxxxx"; 

if(!mysql_connect($host, $username, $password)) 
    die('Unable to connect to Server: '.mysql_error()); 
if(!mysql_select_db($database)) 
    die('Can not select the Database: '.mysql_error()); 

$query = mysql_query("SELECT mimetype, Image FROM table ORDER BY id DESC LIMIT 0,1"); 

if(!$query) 
    die('Query Failed: '.mysql_error()); 
if(mysql_num_rows($query)==0) 
    die('Query Returned No Records'); 

$row = mysql_fetch_array($query); 

echo '<pre>'; 
var_dump($row); 
echo '</pre>'; 

那笑或者向您顯示數據庫的結果或錯誤消息。如果你看到一個錯誤信息,正確任何原因造成的?

以上後剛剛返回數據庫行的內容:

$username = "xxxxxxxx"; 
$password = "xxxxxxxx"; 
$host = "000.001.000.000"; 
$database = "xxxxxxxx"; 

if(!mysql_connect($host, $username, $password)) 
    die('Unable to connect to Server: '.mysql_error()); 
if(!mysql_select_db($database)) 
    die('Can not select the Database: '.mysql_error()); 

$query = mysql_query("SELECT mimetype, Image FROM table ORDER BY id DESC LIMIT 0,1"); 

if(!$query) 
    die('Query Failed: '.mysql_error()); 
if(mysql_num_rows($query)==0) 
    die('Query Returned No Records'); 

$row = mysql_fetch_array($query); 

header('Content-type: '.$row['mimetype']); 
echo $row['Image']; 

(假設mimetype場是類似「圖像/ JPG」 )

0

我建議你輸出之前增加一個Content-Length頭:

header("Content-length: " . strlen($content)) 
0

我建議改變標題,使其動態取決於圖像MIME型:

header('Content-type: '.$row['mimetype']);