作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如何使用 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/
我是一名优秀的程序员,十分优秀!