2012-02-06 71 views
3

我已閱讀了許多關於PHP/JSON blob處理的文章,但似乎沒有提供關於如何繼續的清晰示例。我正在嘗試與服務器上的SQL數據庫進行通信。有問題的表有一箇中等的blob字段。我使用PHP和JSON來獲取數據並將其顯示在Android手機上。我對非blob數據沒有問題。我可以抓住它並毫無問題地顯示它。但是,blob數據總是通過JSON作爲「null」返回。我知道JSON不直接支持二進制數據,但是,我的問題仍然存在,我如何從Android系統訪問blob數據?所討論的blob數據主要是文本文件(即.PDF,.DOC等)。我無法控制SQL表。更重要的是,如何獲得與其餘數據打包的blob字段,以便我可以在Android平臺上處理它?任何幫助將不勝感激。從PHP返回SQL Blob JSON

+0

可能重複http://stackoverflow.com/questions/4855447/how-to-use-blob-with-json-and-php – 2012-02-06 18:29:32

+0

嘿 - 對於一些場景,二進制數據的base64編碼解決了許多問題。它的大小爲原始數據的3/2,這是一個問題,但所有數據都是字母數字,爲什麼它很容易傳輸。它會導致服務器和客戶端的開銷,但我不知道PHP的支持,但也許? – faester 2012-02-06 18:31:02

回答

1

在數據庫表中存儲二進制數據可能是一個壞主意,看到了這個問題:Storing Images in DB - Yea or Nay?

您可以使用base64_encode()在PHP編碼的二進制數據。

在PHP它可能是這個樣子:

$row = mysql_fetch_assoc($res); 
foreach($row as $key => $value){ 
    $json[$key] = base64_encode($value); 
} 
echo json_encode($json);