2011-09-13 121 views
0

我有兩個單獨的文件,一個是顯示html/php文檔圖像,另一個是使用頭部函數content-type:image/jpeg呈現圖像的php文件。閱讀多個圖像php

我試着用它與一個圖像,它運作良好。但是,我需要顯示多個圖像。我怎麼能這樣做?

的HTML/PHP的文檔有指出,以呈現圖像

echo "<image src=Image.php>"; 

的image.php PHP文件img標籤

$selectimage = mysql_query("SELECT Image from ImageTbl", $con); 
if($selectimage) 
{ 
header("Content-type:image/jpeg"); 
while($row = mysql_fetch_array($selectimage)) 
{ 
echo $row["Image"]; 
} 
} 
+0

你說的顯示多個圖像的意思是 - 你想要使用該腳本將多個圖像顯示爲一個圖像,即彼此相鄰? –

回答

0

使兩個文件,一個是圖像另一個用於取行這樣

image.php

$image_id = $_GET["id"]; 
header("Content-type:image/jpeg"); 
//query database to get only one image from id 
echo $row["Image"]; 

另一個文件

getimages.php

//query for image data 
while($row = mysql_fetch_array()) 
{ 
    echo "<img src='image.php?id=$row[id]' />"; 
} 
0

你不能輸出全部的圖像組合在一起,因爲瀏覽器,它看起來像多個圖像的數據搗成泥在一起,這是荒謬的。而且,每個圖像標籤只能顯示一個圖像。爲了解決這個問題,給圖像表一個ID字段來識別圖像。

然後在輸出HTML文件,這樣做(傳遞ID您需要的圖像):

echo "<image src='Image.php?id=1>"; 
echo "<image src='Image.php?id=2>"; 
echo "<image src='Image.php?id=3>"; 

然後將圖像輸出的文件,在做:

$id = intval($_REQUEST['id']); // intval will validate the ID to be an int 
$selectimage = mysql_query("SELECT Image from ImageTbl WHERE id=$id LIMIT 1", $con); 
if ($selectimage) { 
    $row = mysql_fetch_array($selectimage); 
    if ($row) { // check if the image really exists 
     header("Content-type:image/jpeg"); 
     echo $row["Image"]; 
    } 
} 
+0

不應該教人們使用$ _REQUEST,因爲每個人都知道它在安全和速度方面聲譽不佳。 - 使用$ _POST或$ _GET取決於您想要使用的方法。 – DarkMantis

+0

討厭相反,但雖然我同意使用正確的方法變量值得稱讚,但我認爲安全/速度不好的代表是蛇油。人們不應該依靠這種方法來保護腳本 - 它不能替代適當的輸入驗證。此外,這個腳本中沒有任何內容自然表明應該優先選擇一種方法(除非我碰巧使用了GET)。由於$ _REQUEST未按需填充,因此速度與其餘部分相同,因此不確定速度參數來自何處。然而,對$ _REQUEST有很好的爭論,比如這裏:http://bit.ly/3OZUbp :) – Sajid

+0

哦,我很抱歉,也許我對速度錯了,但是我也同意安全性不應該是完全基於你的方法。顯然,清理所有數據是任何應用程序的關鍵。我沒有去找你,我只是想讓OP意識到他們需要小心REQUEST變種。 – DarkMantis

0

使用foreach循環遍歷所請求的記錄,並獨立地將它們回顯給您使用的img標籤。

這將是我認爲最好的方法。

0

如果你想用一個腳本來顯示不同的圖像的數量,嘗試一些獨特的哈希添加到腳本名稱(如md5(microtime())

$seed = md5(microtime()); 
echo '<image src="Image.php' . $seed . '">';