android - 将图像从android上传到webservice

标签 android soap upload

如何使用 SOAP 将图像文件上传到网络服务?

我需要将它与 SoapObejct 一起使用,以便网络服务可以在其上下文中处理输入文件并为其指定一个新文件名。

如何? 有代码示例吗?

约夫

最佳答案

将您的图像文件转换为 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 字符串发送到网络服务:

在你的 Activity 中:

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 字符串作为第二个参数传递。

关于android - 将图像从android上传到webservice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019868/

相关文章:

android - 在 Android 中以 native 代码创建 .pcap 文件,然后检索它

java - Android Lint 在不应该的地方标记 NewAPI 错误

rest - 有人有 "Well Defined"REST Web 服务的示例吗?

php - PHP SOAP 和 Magento WebService 出错

ajax - 使用Grails从 Canvas 上载图像

PHP上传多个文件只上传1个文件

java - String 无法转换为 JSONArray,解决方案无法修复它

android - 从不同的应用程序访问静态字段

objective-c - SOAP WebService objective-c

php - 长时间上传后,Youtube API token 过期