在之前一段的项目中,使用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()); }
终于解决了同时接受参数的问题