2011-12-14 26 views
3

有點麻煩我試圖查看一個base64編碼的圖像,它是作爲一個blob在我的服務器上舉行。我想用圖像標籤查看這個內容,或者將它作爲一個html文件回顯,我可以通過圖像標籤參考它。查看base64編碼的blob與PHP的PHP

問題是blob數據返回錯誤從我的服務器。

<?php 

     $select = "SELECT `data` 
       FROM `sandbox`.`photos` 
       WHERE `id` = 4 
       LIMIT 0 , 1"; 

     $result = mysql_query($select, $connection); 



     while($row = mysql_fetch_array($result)){ 

      $blob_data = $row[0]; 

      echo "$blob_data"; 

      } 

    ?> 

的問題是,這retuns 5.533782782 * E.

如何認爲這是一個形象呢?我需要解碼嗎?

+2

文體備註:使用`echo $ blob_data`。沒有必要引用變量。 – deceze 2011-12-14 02:58:07

回答

0

數據庫並不富有創造性 - 它們存儲的數據與您放入的數據幾乎完全相同,然後檢索確切的數據。

這意味着如果您在插入數據之前將數據編碼到base64中,則必須從base64解碼以獲取有意義的信息。


注意:你可能會更好過存儲文件在文件系統中的圖像,並在數據庫中的文件路徑,而不是僅僅把圖像直接到你的數據庫

您可以使用任何文件路徑您希望,甚至從文檔根目錄以外的(雖然應注意不要讓敏感文件穿越/顯示器):

while($row = mysql_fetch_array($result)){ 

    $file_path = $row[0]; 

    echo file_get_contents($file_path); 

} 
+0

謝謝,但我想動態引用圖像,以便他們去的數據庫。 – Christopher 2011-12-14 02:56:15

+0

「動態引用」圖像的哪個方面阻止將其存儲在文件系統中? – twsaef 2011-12-14 04:21:17

4

試試這個:

echo '<img src="data:image/png;base64,'.base64_encode($blob_data).'">';