2011-11-05 21 views
5

SOAPを使用して画像ファイルをWebサービスにアップロードするにはどうすればよいですか?画像をAndroidからwebserviceにアップロード

SoapObejctで使用する必要があるので、Webサービスは入力ファイルをそのコンテキストで処理し、新しいファイル名を与えることができます。

どのようにですか? コード例はありますか?

ヨアフ

答えて

7

画像ファイルは、Base64文字列に変換し、簡単にWebサービスにその名前を使用して文字列を送信します。 まだコードサンプルが必要ですか?あなたの活動の

:あなたのWebサービスで

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文字列を変換編集

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文字列としてWebサービスへのあなたのオブジェクトを送信

MyClassのレプリカであるオブジェクト。

編集:

はまた、あなたはJSONを無視して、2つのパラメータでwebserivceメソッドを持つことができます。2番目のパラメータとしてMyWebserviceMethod(string filename, string content); パスBase64文字列。

+0

これをBase64に変換するにはどうすればいいですか?また、サーバー上の画像ファイルに変換する方法はありますか? DataHandlerの使用に関する情報がほとんど見つかりませんでした。素敵な短いコードの例は本当に素晴らしいでしょう。ありがとう – Yoav

+0

GsonはSoapObjectで使用できますか? SoapObject c; ... c.adppProperty(...)を使用しています。私はBase^$情報をプロパティとして入れるべきですか? – Yoav

+0

どのようにWebサービスを実装していますか?それは.Net webserviceですか? – breceivemail

関連する問題