时间:2010-07-26 16:57:01

标签: java servlets urlconnection

3 个答案:

答案 0 :(得分:77)

答案 1 :(得分:16)

解决方案:

解决方案A:

  1. 下载http://www.servlets.com/cos/index.html
  2. com.oreilly.servlet.MultipartRequest
  3. 上调用getParameters()

    解决方案B:

    1. 下载http://jakarta.Apache.org/commons/fileupload/
    2. 在中调用readHeaders() org.apache.commons.fileupload.MultipartStream
    3. 解决方案C:

      1. 下载http://users.boone.net/wbrameld/multipartformdata/
      2. 启用getParameter com.bigfoot.bugar.servlet.http.MultipartFormData
      3. 解决方案D:

        使用Struts。 Struts 1.1自动处理这个问题。

        参考:http://www.jguru.com/faq/view.jsp?EID=1045507

答案 2 :(得分:6)

在上传之前并不总是有一个servlet(我可以使用过滤器)。 或者可能是同一个控制器(同样是一个过滤器或者一个servelt)可以提供很多动作,所以我认为依赖于那个servlet配置来使用getPart方法(仅适用于Servlet API> = 3.0),我不知道知道,我不喜欢。

一般来说,我更喜欢独立的解决方案,能够独自生活,在这种情况下,http://commons.apache.org/proper/commons-fileupload/就是其中之一。

List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
    for (FileItem item : multiparts) {
        if (!item.isFormField()) {
            //your operations on file
        } else {
            String name = item.getFieldName();
            String value = item.getString();
            //you operations on paramters
        }
}