HttpServletRequest到MultipartHttpServletRequest:ClassCastException

时间:2012-01-10 06:11:19

标签: spring spring-mvc spring-security spring-webflow

我想将httpServletRequest投射到multipartHttpServletRequest。当我尝试这个时,会发生ClassCastException

MultipartHttpServletRequest request = (MultipartHttpServletRequest)req;

仅在AJAX调用时发生此错误,对于表单提交,它不会发生。

我已经完成了以下所有必要步骤:

  1. 使用commons-fileupload.jar
  2. 设置enctype="multipart/form-data"
  3. 在spring上下文中定义multiparResolver bean。
  4. 请帮忙。

3 个答案:

答案 0 :(得分:2)

除了

<form method=<method> action=<url> enctype="multipart/form-data"></form>

你必须

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

在弹簧配置文件中。

答案 1 :(得分:1)

是的,通过Ajax你无法上传文件内容,因此请求没有任何文件内容的spring无法准备MultipartHttpServletRequest,这会导致ClassCastException。然后你必须使用html中使用iframe的技术上传文件,同时提供ajax样式上传。

答案 2 :(得分:0)

要获取MultipartHttpServletRequest,请尝试此

 MultipartHttpServletRequest multiPartRequest = new DefaultMultipartHttpServletRequest(req);