2011-11-05 8 views
5

अपलोड छवि को एसओएपी का उपयोग कर एक webservice पर एक छवि फ़ाइल कैसे अपलोड कर सकते हैं?एंड्रॉइड से webservice

मुझे इसे साबुनबेजेक्ट के साथ उपयोग करने की आवश्यकता है ताकि webservice इनपुट फ़ाइल को इसके संदर्भ में संभाल सके और इसे एक नया फ़ाइल नाम दे सके।

कैसे? कोई कोड उदाहरण?

Yoav

उत्तर

7

एक Base64 स्ट्रिंग के लिए अपनी छवि फ़ाइल कन्वर्ट और आसानी से वेब सेवा के लिए इसका नाम के साथ अपने स्ट्रिंग भेजें। क्या आपको अभी भी कोड नमूना चाहिए?

संपादित

public static String fileToBase64(String path) throws IOException { 
    byte[] bytes = Utilities.fileToByteArray(path); 
    return Base64.encodeBytes(bytes); 
} 

public static byte[] fileToByteArray(String path) throws IOException { 
    File imagefile = new File(path); 
    byte[] data = new byte[(int) imagefile.length()]; 
    FileInputStream fis = new FileInputStream(imagefile); 
    fis.read(data); 
    fis.close(); 
    return data; 
} 

public class MyImage { 
public String name; 
public String content; 
} 

JSON स्ट्रिंग के रूप वेब सेवा करने के लिए अपने ऑब्जेक्ट भेजें:

अपनी गतिविधि में

:

MyClass myClass = new MyClass(); 
myClass.name = "a.jpg"; 
myClass.content = fileToBase64("../../image.jpg"); 
sendMyObject(myClass); 

private void sendMyObject(
     MyImage myImage) throws Exception { 
    // create json string from your object 
    Gson gson = new Gson(); 
    String strJson = gson.toJson(myImage); 
    //send your json string here 
    //... 

} 

अपने वेब सेवा में एक असली करने के लिए अपने json स्ट्रिंग परिवर्तित ऑब्जेक्ट जो MyClass की एक प्रतिकृति है।

संपादित करें:

इसके अलावा, आप Json ध्यान न दें और 2 मानकों के साथ एक webserivce विधि हो सकता है: MyWebserviceMethod(string filename, string content); दूसरा पैरामीटर के रूप में पास Base64 स्ट्रिंग।

+0

ठीक है, इसे बेस 64 में कैसे परिवर्तित कर सकते हैं? और सर्वर पर छवि फ़ाइल में वापस कैसे परिवर्तित करें? मुझे डेटाहैंडलर का उपयोग करने के लिए बहुत कम जानकारी मिली - जो बेहतर है? एक अच्छा शॉर्ट कोड उदाहरण वास्तव में महान होगा। धन्यवाद – Yoav

+0

क्या Gson SoapObject के साथ उपयोग किया जा सकता है? मैं SoapObject सी का उपयोग कर रहा हूँ; ... c.adppProperty (...)। क्या मुझे आधार^$ जानकारी को संपत्ति के रूप में रखना चाहिए? – Yoav

+0

आप अपनी वेब-सेवा कैसे कार्यान्वित करते हैं? क्या यह एक नेट webservice है? – breceivemail