android之调用webservice 实现图片上传

转:http://www.cnblogs.com/top5/archive/2012/02/16/2354517.html

public void testUpload(){
        try{
            String srcUrl = "/sdcard/"; //路径
            String fileName = "aa.jpg";  //文件名
            FileInputStream fis = new FileInputStream(srcUrl + fileName);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int count = 0;
            while((count = fis.read(buffer)) >= 0){
                baos.write(buffer, 0, count);
            }
            String uploadBuffer = new String(Base64.encode(baos.toByteArray()));  //进行Base64编码
            String methodName = "uploadImage";
            connectWebService(methodName,fileName, uploadBuffer);   //调用webservice
            Log.i("connectWebService", "start");
            fis.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
connectWebService()方法:
//使用 ksoap2 调用webservice
    private boolean connectWebService(String methodName,String fileName, String imageBuffer) {
        String namespace = "http://134.192.44.105:8080/SSH2/service/IService";  // 命名空间,即服务器端得接口,注:后缀没加 .wsdl,
                                                                                //服务器端我是用x-fire实现webservice接口的
        String url = "http://134.192.44.105:8080/SSH2/service/IService";   //对应的url
        //以下就是 调用过程了,不明白的话 请看相关webservice文档
        SoapObject soapObject = new SoapObject(namespace, methodName);
        soapObject.addProperty("filename", fileName);  //参数1   图片名
        soapObject.addProperty("image", imageBuffer);   //参数2  图片字符串
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER10);
        envelope.dotNet = false;
        envelope.setOutputSoapObject(soapObject);
        HttpTransportSE httpTranstation = new HttpTransportSE(url);
        try {
            httpTranstation.call(namespace, envelope);
            Object result = envelope.getResponse();
            Log.i("connectWebService", result.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }  

2。 服务器端的webservice代码 :

public String uploadImage(String filename, String image) {
    FileOutputStream fos = null;
    try{
        String toDir = "C:\\Program Files\\Tomcat 6.0\\webapps\\SSH2\\images";   //存储路径
        byte[] buffer = new BASE64Decoder().decodeBuffer(image);   //对android传过来的图片字符串进行解码
        File destDir = new File(toDir);
        if(!destDir.exists()) destDir.mkdir();
        fos = new FileOutputStream(new File(destDir,filename));   //保存图片
        fos.write(buffer);
        fos.flush();
        fos.close();
        return "上传图片成功!" + "图片路径为:" + toDir;
    }catch (Exception e){
        e.printStackTrace();
    }
    return "上传图片失败!";
}  

对android 端进行 单元测试调用testUpload()方法,如果你看到绿条的话,说明调用成功!在服务器下,就可以看到你上传的图片了。。。。

当然,这个demo很简陋,没有漂亮UI什么的,但是这是 android端调用webservice进行上传图片的过程。从服务器下载到android端,道理亦然。欢迎大家交流学习。。。。

时间: 2024-10-29 10:46:12

android之调用webservice 实现图片上传的相关文章

Android自定义动态布局 — 多图片上传

Android自定义动态布局 - 多图片上传 本文介绍Android中动态布局添加图片,多图片上传. 项目中效果图:    技术点: 1.动态添加格局中的线条和添加图片的+号 2.多张图片异步上传 首先来看一下布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layo

单独调用Ueditor的图片上传功能

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <script src="/scripts/jquery-1.8.3.min.js"></script> 6 <script src="/ueditor/ueditor.config.js" type="text/javascript">&l

Android简单实现将手机图片上传到server中

在本例中.将会简单的实现安卓手机将图片上传到server中.本例使用到了 server端:PHP+APACHE 客户端:JAVA 先简单实现一下server端的上传并測试上传效果,看实例 <?php if(empty($_GET['submit'])){?> <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']? >?submit=1" method

[项目构建 五]babasport ajax图片上传及FastDFS入门案例.

今天来开始写图片上传的功能, 现在的图片上传都讲求 上传完成后立刻回显且页面不刷新, 这里到底是怎么做的呢? 当然是借助于ajax了, 但是ajax又不能提交表单, 这里我们还要借助一个插件: jquery.form.js剩下的一个是FastDFS, 那么什么是FastDFS呢? FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server).存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文

DWZ集成的xhEditor编辑器浏览本地图片上传的设置

有关xhEditor的文件上传配置官方文档链接:http://i.hdu.edu.cn/dcp/dcp/comm/xheditor/demos/demo08.html 一.xhEditor图片上传的配置 DWZ集成的xhEditor默认的配置是默认模式没有如下图上传按钮的,如果需要本地浏览上传,则需相关的配置 这里拿上传图片为例: <textarea class="editor" upimgurl="@Url.Action("xhEditorImgUpload

UEditor之图片上传如何和真实项目结合

1.首先,我们定义一个名为GetConfigServlet的Servlet,真实项目应该是一个Controller,一样的,这个类就是加载后端配置文件类 package com.ay.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet;

[iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]

简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma mark - JSON方式post提交数据 - (void)postJSONWithUrl:(NSString *)urlStr parameters:(id)parameters success:(void (^)(id responseObject))success fail:(void (^)(

Android开发中使用七牛云存储进行图片上传下载

Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储原理,上面这幅图片是官方给出的原理图,表述当然比较清晰了.可以看出,要进行图片上传的话可以分为五大步: 1. 客户端用户登录到APP的账号系统里面: 2. 客户端上传文件之前,需要向业务服务器申请七牛的上传凭证,这个凭证由业务服务器使用七牛提供的服务端SDK生成: 3. 客户端使用七牛提供的客户端S

Android图片上传(头像裁切+原图原样)

还是那句话,最近项目比较忙拖了很久这篇文章终于完成了! 先看一下效果图: (一)头像裁切.上传服务器(效果图) 一般都是有圆形显示头像的,这里我自定义了一个ImageView,页面很干净但是看着很上档次吧! 点击头像从底部弹出一个对话框,提示用户头像来自相机或者相册,这都是常规流程. 上传完成后默认的"程序员头像"换成了萌妹子 (二)普通图片上传服务器(效果图) 模仿QQ空间发动态的布局随意捏造一个界面出来 点击添加图片从底部弹出一个对话框,提示用户图片来自相机或者相册,这也都是常规流