springmvc上传文件的问题
我在使用了springmvc实现文件上传时出现了
org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest 这个错误。
网上的解决方案我试了,添加
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>
使用action提交表单请求上传文件时,解决了问题,一切正常,但是我在做的项目要求不能进行页面跳转,所以使用了ajax的方法提交表单,这样一来原来的错误又出现了。
我调试了一下,发现貌似配置的bean multipartResolver没有起到任何作用,上传文件的函数中获得的request还是org.apache.catalina.connector.RequestFacade类型的,而使用action提交表单时,函数中获得的request是org.springframework.web.multipart.MultipartHttpServletRequest类型的。
为什么呢?应该怎么解决呢?请各位大神多多指教。谢谢!
------解决方案--------------------可以隐藏一个iframe,还得用表单才可以
------解决方案--------------------先在你的spring.xml中加入
<!-- ========================================== -->
<!-- Spring 上传下载设置 -->
<!-- ========================================== -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<property name="defaultEncoding" value="UTF-8"/> <!-- 默认编码 (ISO-8859-1) -->
<property name="maxInMemorySize" value="10240"/> <!-- 最大内存大小 (10240)-->
<property name="maxUploadSize" value="-1"/> <!-- 最大文件大小,-1为无限止(-1) -->
</bean>
然后你的上传方法必须加上
@ResponseBody @RequestMapping("/upload.shtml")
public void upload
(@RequestParam MultipartFile file, HttpServletRequest request,HttpServletResponse response){
}
你试试