如何在java servlet中处理multipart/form-data POST请求?

Nik*_*man 6 java servlets multipartform-data

我正在用我的java应用服务器处理multipart/form-data请求非常困难.根据我的发现,servlet 3.0规范提供了诸如HttpServletRequest.getParts()之类的方法,这对于处理上传到我的servlet的表单数据是理想的.

但是,此方法是3.0 servlet规范的一部分,我的应用程序服务器(Tomcat 6)尚不支持此方法.即使使用有效的3.0 web.xml文件和java EE 6库,尝试调用getParts()时也会出现以下异常:

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getParts()Ljava/util/Collection;
Run Code Online (Sandbox Code Playgroud)

切换应用程序服务器对于该项目来说并不是一个可行的选择 是否有任何第三方库可用于处理java servlet中的multipart/form-data?

And*_*yle 10

查看Apache Commons Fileupload.它为您提供了一个编程API,用于解析多部分请求,并单独迭代它的各个部分.

我过去曾经使用它进行简单的多部分处理,它可以很好地完成工作而不会过于复杂.


Vin*_*lds 5

Tomcat 6不支持Servlet规范3.0,也不支持Servlet规范3.0.您应该尝试在Tomcat 7上执行此操作,但我不确定此功能是否存在于当前可用的测试版中.该功能预计将出现在生产版本中.

您可以继续使用Apache Commons FileUpload,如在其他答案中发布的那样,或者您可以使用Glassfish(取决于项目的当前阶段和类型).