如何利用Axis2+Spring实现文件上传(支持jsp页面的form表单提交),Android客户端调用
来源:互联网 发布:移动加强网络信息安全 编辑:程序博客网 时间:2024/06/06 00:42
参考博文:
http://blog.csdn.net/thinkpadshi/article/details/8173765
http://blog.csdn.net/helloworlddream/article/details/9469497
今天下午搞了一下Webservice实现文件上传的功能,接下来的项目中要使用,下面是今天的劳动成果。主要记录一下Webservice服务端怎么写,Android客户端怎么调用,至于form表单的提交,我看了一下上面的提到的博文,应该也是满足的,代码基本借鉴上面的两篇博文中的代码,惭愧,但是还是记录一下,方便自己以后使用,加深一下印象。
完整Service代码:
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Calendar;import javax.activation.DataHandler;import org.springframework.stereotype.Service;@Servicepublic class MaeipServiceJws {// 使用DataHandler类型参数上传文件 public boolean uploadWithDataHandler(DataHandler profile_picture) { FileOutputStream fos = null; try { profile_picture.getContentType();profile_picture.getContent();String[] fileinfo=profile_picture.getName().split("\\.");if (fileinfo.length>1){fos = new FileOutputStream("D:\\WebserviceUpload\\"+Calendar.getInstance().getTimeInMillis()+"."+fileinfo[1]); }else{fos = new FileOutputStream("D:\\WebserviceUpload\\"+Calendar.getInstance().getTimeInMillis()); }// 可通过DataHandler类的getInputStream方法读取上传数据 writeInputStreamToFile(profile_picture.getInputStream(), fos); fos.close(); } catch (Exception e) { return false; } finally { if (fos != null) { try { fos.close(); } catch (Exception e) { } } } return true; } private void writeInputStreamToFile(InputStream is, OutputStream os) throws Exception { int n = 0; byte[] buffer = new byte[8192]; while ((n = is.read(buffer)) > 0) { os.write(buffer, 0, n); } } }
下面是Android客户端的代码调用,Android上传使用的是android-async-http工具,我的另一篇文章中有介绍,地址:http://blog.csdn.net/u013758734/article/details/39504075,不过这里不同的是,设置参数的时候,下面的params.put("profile_picture",file);这里的参数名必须是profile_picture,因为服务端的参数名就是这个,和另一篇不同,因为那个服务端是使用SpringMVC来写的,可以SpringMVC直接将HttpServletRequest中文件封装为Spring自己的MultipartHttpServletRequest ,所以可以直接将request转换为MultipartHttpServletRequest,然后获取MultipartFile即可,服务端不需要指定参数,根据上下文就可以得到,Axis2是需要的,我上面指定的参数名称为profile_picture,它的类型为DataHandler。
private void uploadImageTest(){File file = new File("/storage/sdcard0/xixi.png");String uploadUrl="http://192.168.1.111:8082/maeip/services/MaeipServiceJws/uploadWithDataHandler";RequestParams params=new RequestParams();System.out.println(file.length());try {params.put("profile_picture", file);AsyncHttpClient client =new AsyncHttpClient(); //实例话对象client.setTimeout(600000); //设置链接超时,如果不设置,默认为10s client.post(uploadUrl,params,uploadResponseHander());} catch (Exception e) {e.printStackTrace();}}/** * 上传回调 * @return */private AsyncHttpResponseHandler uploadResponseHander(){return new AsyncHttpResponseHandler(){@Overridepublic void onSuccess(int statusCode, Header[] headers, byte[] responseBody){Log.i("UploadResult", "上传完成");}@Overridepublic void onFailure(int statusCode, Header[] headers,byte[] responseBody, Throwable error){error.printStackTrace();Log.i("UploadResult", "上传完成");}};}
OK就这样简单。
0 0
- 如何利用Axis2+Spring实现文件上传(支持jsp页面的form表单提交),Android客户端调用
- Action如何接收jsp页面form表单提交的数据?
- Action如何接收jsp页面form表单提交的数据?
- Spring Mvc提交form表单上传文件
- Spring Mvc提交form表单上传文件
- android 表单提交 (支持多文件上传) + 服务端代码
- 页面的form表单上传文件
- spring mvc 文件上传 controller中接收form表单中提交上来的文件
- Android中Form Post方式提交,上传文件的实现
- jsp form表单提交获取返回数据(也可用来上传文件、图片)
- springMVC利用jquery-form.js异步提交表单(上传文件)
- jsp页面中form表单提交到数据库的方法
- rails上传文件时,实现form表单自动提交
- 使用jQuery.form插件实现表单异步提交+上传文件
- 使用jQuery.form插件实现表单异步提交+上传文件
- springmvc-普通form表单提交方式实现文件上传
- 如何实现提交form表单而不重新刷新页面
- 实现向服务器上传图片文件、实现不同方式的form表单提交方式
- Struts2 拦截器和转换器
- 生日相同
- Fragment嵌套Fragment的时候容易出现白屏的现象
- MIT牛人解说数学体系
- Linux 进程
- 如何利用Axis2+Spring实现文件上传(支持jsp页面的form表单提交),Android客户端调用
- 网页预加载---提升网页浏览速度
- Dedecms 常用数据库表结构
- nyoj 502 筹建工程
- 超声波测距程序
- hdu 4982 贪心构造序列
- 10.18学习日记
- struts2 实现原理解析
- 金字塔程序