2012-08-07 56 views
0

也许我的问题与this one是多余的,但我找不到如何处理多部分HTTP请求。在我的Servlet中,在服务器端如何处理多部分POST?

我写了一个使用POST发送文件和字符串的HTTP请求。如何在服务器端获取我的Servlet?

这是我做的。我是否正确?

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    Gson gson = new Gson(); 
    Status status = new Status(); 

    boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
    if(isMultipart){ 
     status.setSuccess(true); 
     status.setDescription("It is OK."); 
     DiskFileItemFactory factory = new DiskFileItemFactory(); 
     factory.setSizeThreshold(MAX_MEMORY_SIZED); 
     factory.setRepository(new File(ADRESS_WHERE_I_WANT_TO_PUT_THE_FILE)); 
     ServletFileUpload upload = new ServletFileUpload(factory); 
     upload.setSizeMax(MAX_FILE_SIZE_TO_BE_UPLOADED); 
     try { 
      List<FileItem> items = upload.parseRequest(request); 
      Iterator iter = items.iterator(); 
      while (iter.hasNext()) { 

      ... // WHAT TO DO HERE TO GET MY STRING AND MY FILE ??? 

      } 
    } 
    else{ 
     status.setSuccess(false); 
     status.setDescription("Not multipart."); 
    } 
    response.setContentType("application/json;charset=UTF-8"); 
    response.setCharacterEncoding("UTF-8"); 
    PrintWriter output = response.getWriter(); 
    output.write(gson.toJson(status)); 
    output.flush(); 
} 
+0

旁边的答案有同样来自于Apache的一些库,它可以让你做的正是那种请求 – 2012-08-07 15:58:10

+0

的,但你怎么做呢? – cleroo 2012-08-08 07:19:42

+0

查看http apache中多线程和多部分的链接http://evgenyg.wordpress.com/2010/05/01/uploading-files-multipart-post-apache/,http://pro-programmers.blogspot .de/2009/06/apache-httpclient-multi-threads.html – 2012-08-08 08:18:55

回答

0

我想看看提供的MultipartParserservlets.com

从网站:

有一个在重新发明轮子,没有任何意义 - 这里是我写的,你一定的servlet 支持类可以使用。最有名的是文件上传 包MultipartRequest和MultipartParser

相关问题