httpClient上传文件ApacheServlet 注意:要载入commons-httpclient-3.1.jarcommons-codec.jarcommons-logging.jar这三个包importjava.io.File;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.HttpStatus;importorg.apache.commons.httpclient.methods.PostMethod;importorg.apache.commons.httpclient.methods.multipart.FilePart;importorg.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;importorg.apache.commons.httpclient.methods.multipart.Part;publicclassHclient{publicstaticvoidmain(Stringargs[]){ StringtargetURL=null;//TODO指定URL FiletargetFile=null;//TODO指定上传文件 targetFile=newFile("1.mp3"); targetURL="http://localhost:8080/test/tt";//servleturl PostMethodfilePost=newPostMethod(targetURL); try { //通过以下方法可以模拟页面参数提交 //filePost.setParameter("name","中文"); //filePost.setParameter("pass","1234"); Part[]parts={newFilePart(targetFile.getName(),targetFile)}; filePost.setRequestEntity(newMultipartRequestEntity(parts,filePost.getParams())); HttpClientclient=newHttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); intstatus=client.executeMethod(filePost); if(status==HttpStatus.SC_OK) { System.out.println("上传成功"); //上传成功 } else { System.out.println("上传失败"); //上传失败 } } catch(Exceptionex) { ex.printStackTrace(); } finally { filePost.releaseConnection(); }}}servlet部分:注意:需求载入commons-fileupload-1.2.1.jarcommons-io.jar这两个包packageservlet;importjava.io.File;importjava.io.IOException;importjava.util.Iterator;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;publicclassTestServletsextendsHttpServlet{privateStringuploadPath="D:\\temp";//上传文件的目录 privateStringtempPath="d:\\temp\\buffer\\";//临时文件目录 FiletempPathFile; publicvoidinit()throwsServletException{ FileuploadFile=newFile(uploadPath); if(!uploadFile.exists()){ uploadFile.mkdirs(); } FiletempPathFile=newFile(tempPath); if(!tempPathFile.exists()){ tempPathFile.mkdirs(); } }publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ try { //Createafactoryfordisk-basedfileitems DiskFileItemFactoryfactory=newDiskFileItemFactory(); //Setfactoryconstraints factory.setSizeThreshold(4096);//设置缓冲区大小,这里是4kb factory.setRepository(tempPathFile);//设置缓冲区目录 //Createanewfileuploadhandler ServletFileUploadupload=newServletFileUpload(factory); //Setoverallrequestsizeconstraint upload.setSizeMax(4194304);//设置最大文件尺寸,这里是4MB List<FileItem>items=upload.parseRequest(request);//得到所有的文件 Iterator<FileItem>i=items.iterator(); while(i.hasNext()) { FileItemfi=(FileItem)i.next(); StringfileName=fi.getName(); if(fileName!=null) { FilefullFile=newFile(fi.getName()); FilesavedFile=newFile(uploadPath,fullFile.getName()); fi.write(savedFile); } } System.out.print("uploadsucceed"); } catch(Exceptione) { System.out.println(e.getMessage()); //可以跳转出错页面 e.printStackTrace(); }}}