android客户端上传文件 至java服务器,服务器在tomcat中保存,求代码

如题所述

服务器端写个servlet,然后在doPost()方法里处理客户端上传的文件,大概代码:

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 1024); // 设置最多只允许在内存中存储的数据, 单位:字节
factory.setRepository(cachepath); // 设置一旦文件大小超过设定值时数据存放的目录

ServletFileUpload srvFileUpload = new ServletFileUpload(factory);
srvFileUpload.setSizeMax(1024 * 1024 * 1024); // 设置允许用户上传文件大小, 单位:字节

// 开始读取上传信息
List fileItems = null;
try {
fileItems = srvFileUpload.parseRequest(request);
} catch (Exception e) {
System.out.println("获取上传信息。。。。。。失败");
}

// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); // 忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
// 取出文件域的所有表单信息
} else {
// 取出不是文件域的所有表单信息
}
}追问

fileItems = srvFileUpload.parseRequest(request);
为null

追答

说明没有获取到你客户端上传的信息。
你Android客户端上传的内容是什么,如何设定的上传信息。

追问

Content-Disposition: form-data;name="img";filename="14.png"
Content-Type: application/octet-stream; charset=utf-8
我使用getParameter取name,filename,img都取不到
纠结

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-17
java的post方法提交都可以使用追问

上传我会, 保存我会 但是怎么取得android中传过去的自己需要的数据

追答

服务器的servlet处理请求时 和表单处理一样 数据会有个name带过来吧

追问

Content-Disposition: form-data;name="img";filename="14.png"
Content-Type: application/octet-stream; charset=utf-8

我使用getParameter取name,filename,img都取不到
纠结

相似回答