httpClient 上传文件

airongjun 贡献于2013-04-18

作者 ai  创建于2013-04-18 04:26:00   修改者ai  修改于2013-04-18 04:26:00字数3036

文档摘要:httpClient 上传文件。
关键词:

httpClient上传文件 ApacheServlet  注意:要载入commons-httpclient-3.1.jar commons-codec.jar commons-logging.jar这三个包 import java.io.File; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.multipart.FilePart; import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity; import org.apache.commons.httpclient.methods.multipart.Part; public class Hclient { public static void main(String args[]) {    String targetURL = null;// TODO 指定URL    File targetFile = null;// TODO 指定上传文件      targetFile = new File("1.mp3");    targetURL = "http://localhost:8080/test/tt"; //servleturl    PostMethod filePost = new PostMethod(targetURL);      try    {     //通过以下方法可以模拟页面参数提交     //filePost.setParameter("name", "中文");     //filePost.setParameter("pass", "1234");    Part[] parts = { new FilePart(targetFile.getName(), targetFile) };     filePost.setRequestEntity(new MultipartRequestEntity(parts,filePost.getParams()));     HttpClient client = new HttpClient();     client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);     int status = client.executeMethod(filePost);     if (status == HttpStatus.SC_OK)     {      System.out.println("上传成功");      // 上传成功     }     else     {      System.out.println("上传失败");      // 上传失败     }    }    catch (Exception ex)    {     ex.printStackTrace();    }    finally    {     filePost.releaseConnection();    } } } servlet部分: 注意:需求载入commons-fileupload-1.2.1.jar commons-io.jar这两个包 package servlet; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class TestServlets extends HttpServlet { private String uploadPath = "D:\\temp"; // 上传文件的目录     private String tempPath = "d:\\temp\\buffer\\"; // 临时文件目录     File tempPathFile;         public void init() throws ServletException {         File uploadFile = new File(uploadPath);         if (!uploadFile.exists()) {             uploadFile.mkdirs();         }         File tempPathFile = new File(tempPath);          if (!tempPathFile.exists()) {             tempPathFile.mkdirs();         }      } public void doPost(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {    try    {     // Create a factory for disk-based file items     DiskFileItemFactory factory = new DiskFileItemFactory();     // Set factory constraints     factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb     factory.setRepository(tempPathFile);// 设置缓冲区目录     // Create a new file upload handler     ServletFileUpload upload = new ServletFileUpload(factory);     // Set overall request size constraint     upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB     List items = upload.parseRequest(request);// 得到所有的文件     Iterator i = items.iterator();     while (i.hasNext())     {      FileItem fi = (FileItem) i.next();      String fileName = fi.getName();      if (fileName != null)      {       File fullFile = new File(fi.getName());       File savedFile = new File(uploadPath, fullFile.getName());       fi.write(savedFile);      }     }     System.out.print("upload succeed");    }    catch (Exception e)    {     System.out.println(e.getMessage());     // 可以跳转出错页面     e.printStackTrace();    } } }

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档