2012-03-14 76 views
0

什麼是從Android發送圖像Java服務器
我的服務器運行RESTful Web服務最好的辦法,我想從Android發送圖像到我的服務器。從android發送圖像到java運行Restful webservice的服務器?

我應該把它轉換成JSON,XML還是有更好的方法呢?

其實我是想發送圖像中的快捷方式
PLZ份額,如果您有任何示例代碼

+2

轉換圖像字節數組,然後編碼字節數組通過使用Base64,將返回字符串,然後你可以發送圖像作爲字符串它是一個快速的方式,因爲發送圖像作爲字符串 – 2012-03-14 07:20:18

+0

謝謝@ prasad.gai的答案:你能告訴我如何將此字符串轉換爲服務器端的圖像? – 2012-03-14 07:39:25

回答

2
[i]/** 
    * Decodes a byte array from Base64 format. 
    * 
    * @param s 
    *   a Base64 String to be decoded. 
    * @return An array containing the decoded data bytes. 
    * @throws IllegalArgumentException 
    *    if the input is not valid Base64 encoded data. 
    */ 
    public static byte[] decode(String s) 
    { 
     return decode(s.toCharArray()); 
    } 

    /** 
    * Decodes a byte array from Base64 format. No blanks or line breaks are 
    * allowed within the Base64 encoded data. 
    * 
    * @param in 
    *   a character array containing the Base64 encoded data. 
    * @return An array containing the decoded data bytes. 
    * @throws IllegalArgumentException 
    *    if the input is not valid Base64 encoded data. 
    */ 
    public static byte[] decode(char[] in) 
    { 
     int iLen = in.length; 
     if (iLen % 4 != 0) 
      throw new IllegalArgumentException(
      "Length of Base64 encoded input string is not a multiple of 4."); 
     while (iLen > 0 && in[iLen - 1] == '=') 
      iLen--; 
     int oLen = (iLen * 3)/4; 
     byte[] out = new byte[oLen]; 
     int ip = 0; 
     int op = 0; 
     while (ip < iLen) 
     { 
      int i0 = in[ip++]; 
      int i1 = in[ip++]; 
      int i2 = ip < iLen ? in[ip++] : 'A'; 
      int i3 = ip < iLen ? in[ip++] : 'A'; 
      if (i0 > 127 || i1 > 127 || i2 > 127 || i3 > 127) 
       throw new IllegalArgumentException(
       "Illegal character in Base64 encoded data."); 
      int b0 = map2[i0]; 
      int b1 = map2[i1]; 
      int b2 = map2[i2]; 
      int b3 = map2[i3]; 
      if (b0 < 0 || b1 < 0 || b2 < 0 || b3 < 0) 
       throw new IllegalArgumentException(
       "Illegal character in Base64 encoded data."); 
      int o0 = (b0 << 2) | (b1 >>> 4); 
      int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2); 
      int o2 = ((b2 & 3) << 6) | b3; 
      out[op++] = (byte) o0; 
      if (op < oLen) 
       out[op++] = (byte) o1; 
      if (op < oLen) 
       out[op++] = (byte) o2; 
     } 
     return out; 
    }[/i] 

感謝這個帖子:http://www.coderanch.com/t/482256/java/java/Converting-Base-encoded-String-Image

+0

以上代碼段中的map2數組是什麼?它沒有在任何地方定義 – 2012-03-16 06:38:44