在之前一段的项目中,使用Java模仿Http Post方式发送参数以及文件,单纯的传递参数或者文件可以使用URLConnection进行相应的处理。
但是项目中涉及到既要传递普通参数,也要传递多个文件(不是单纯的传递XML文件)。在网上寻找之后,发现是使用HttClient来进行响应的操作,起初尝试多次依然不能传递参数和传递文件,后来发现时因为当使用HttpClient时,不能使用request.getParameter()对普通参数进行获取,而要在服务器端使用Upload来进行操作。
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
FileOutputStream out = null;
InputStream input = null;
List fileList = null;
fileList = upload.parseRequest(getRequest());
Iterator<FileItem> it = fileList.iterator();
String filePath = "";
while (it.hasNext()) {
String userName1 ;
String value;
FileItem item = it.next();
if (item.isFormField()){
userName1 = item.getFieldName();
// fValue = fItem.getString(); // 参数名字
value = item.getString("UTF-8"); //参数值
}else if(!item.isFormField()) {
input = item.getInputStream();// 获取上传的流
String fname = item.getName();// 获取文件名
long size = item.getSize()/(1024*1024);
String ext = fname.substring(fname.lastIndexOf(".") + 1, fname.length());
}
终于解决了同时接受参数的问题