2013-03-22 32 views
1

我有一個要求,我發送一個json文件到服務器和解析發生在服務器端。我創建了json文件的條目,現在我想將存儲在imageview中的圖像存儲爲json文件的條目。搜索了幾個以前的帖子,但找不到要做什麼。任何指針都會對以json格式存儲圖像以通過服務器發送有很大的幫助。發送圖像作爲json條目android

+0

您可以添加OLY對象JSON不是字節,如圖像文件包含 – 2013-03-22 08:38:14

回答

1

好吧,這是一種實驗性的,但你可以創建一個字節數組的位圖,然後創建一個新的字符串與該字節數組,然後將其發送到服務器。

但是,爲什麼不直接發送POST請求來直接保存圖像,而無需進行任何實驗性處理或解析?

1

嘗試的base64編碼的圖像(如下面,這裏的URI是你的形象 - 但請注意:ImageView的沒有消氣的ImageUri,所以你必須自己將它存儲):

Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM); 

ContentResolver cr = getContentResolver(); 
InputStream is = cr.openInputStream(uri); 

byte[] data = getBytesFromFile(is); 

byte[] encoded_data = Base64.encodeBase64(data); 
data_string = new String(encoded_data); 

現在你有一個base64編碼的字符串data_string,你可以用你的JSON請求發送。在服務器端,你只需要解碼字符串並保存圖片。

8

如果您想要將圖像包含在將要發送請求的JSON對象中,請將轉換成Base64字符串並將此字符串放入JSON對象中。

例如:

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT); 

檢查:

+0

感謝答覆。將測試相同的我的需求! – bharath 2013-03-22 09:06:10

+1

我這樣做,但得到錯誤400,錯誤的要求。它似乎不喜歡創建的字符串。 – Doomsknight 2013-08-14 10:39:55

+0

@Doomsknight你有沒有解決這個問題我也面臨同樣的400壞請求 – Naveed 2016-01-05 19:01:18