2011-11-05 47 views
5

Tôi làm cách nào để tải tệp hình ảnh lên dịch vụ web bằng SOAP?tải hình ảnh từ android lên webservice

Tôi cần nó được sử dụng với SoapObejct để webservice có thể xử lý tệp đầu vào trong ngữ cảnh của nó và đặt tên tệp mới cho nó.

Làm cách nào? Bất kỳ ví dụ mã nào?

Yoav

Trả lời

7

Chuyển đổi tệp hình ảnh thành chuỗi Base64 và gửi chuỗi của bạn với tên dịch vụ web dễ dàng. Bạn vẫn cần mẫu mã?

Sửa

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; 
} 

gửi đối tượng của bạn để webservice như là một chuỗi JSON:

trong hoạt động của bạn:

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 
    //... 

} 

Trong webservice của bạn chuyển đổi chuỗi json của bạn đến một thực đối tượng là bản sao của MyClass.

chỉnh sửa:

Ngoài ra bạn có thể bỏ qua Json và có một phương pháp webserivce với 2 tham số: MyWebserviceMethod(string filename, string content); qua Base64 chuỗi như tham số thứ hai.

+0

OK, làm cách nào để chuyển đổi thành Base64? Và cách chuyển đổi lại thành tệp hình ảnh trên máy chủ? Tôi tìm thấy ít thông tin để sử dụng DataHandler - tốt hơn? Một ví dụ mã ngắn đẹp sẽ thực sự tuyệt vời. Cảm ơn – Yoav

+0

Gson có thể được sử dụng với SoapObject không? Tôi đang sử dụng SoapObject c; ... c.adppProperty (...). Tôi có nên đặt thông tin Base^$ làm tài sản không? – Yoav

+0

cách bạn triển khai dịch vụ web của mình? nó là một .Net webservice? – breceivemail

Các vấn đề liên quan