现在的位置: 首页 > 综合 > 正文

httpClient4上传文件和传递参数

2018年05月22日 ⁄ 综合 ⁄ 共 961字 ⁄ 字号 评论关闭

在之前一段的项目中,使用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());
}

终于解决了同时接受参数的问题

抱歉!评论已关闭.