首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

springmvc下传文件的有关问题

2012-12-25 
springmvc上传文件的问题我在使用了springmvc实现文件上传时出现了 org.apache.catalina.connector.Reques

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){
}

你试试

热点排行