0 0

Springmvc上传文件,request对象转换错误10

Jsp 表单提交的代码:
	<form method="post" enctype="multipart/form-data"  action="${ctx}/wzxxfbpdtp/upload">
	上传图片:<input type="file" name="imgFile"/>
          <input type="submit" value="submit">
          </form>


后台处理Controller

@Controller
@RequestMapping("/wzxxfbpdtp")
public class WzXxfbPdtpController{

         @RequestMapping(value = "/upload")
	public ModelAndView upload(HttpServletRequest request,HttpServletResponse response) throws Exception{
         //下面的类型转换就报错了。
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
	MultipartFile multipartFile = multipartRequest.getFile("imgFile");
	//后面再写业务逻辑
         return new ModelAndView(LIST_ACTION);
	}
}



springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
    default-autowire="byName"   >

	<!-- 开启支持@NumberFormat @DateTimeFormat @Valid标注 ,@DateTimeFormat用于bean 日期属性的格式化,请查看: http://static.springsource.org/spring/docs/3.0.2.RELEASE/spring-framework-reference/htmlsingle/spring-framework-reference.html#mvc-config-->
    <mvc:annotation-driven validator="validator"/>

	<!-- 自动搜索@Controller标注的类 -->
	<context:component-scan base-package="com.**.controller"/>
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
		<!-- 拦截器注册
		<property name="interceptors">
			<bean class="javacommon.springmvc.interceptor.SharedRenderVariableInterceptor"/>
		</property>
		 -->
	</bean>

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
	
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
      <property name="maxUploadSize" value="104857600"/>
        <property name="maxInMemorySize" value="4096"/>
   </bean>


    <!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json /blog/1.xml -->
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    	<property name="ignoreAcceptHeader" value="true"/>
		<property name="defaultContentType" value="text/html"/>
		
    	<!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
		<property name="mediaTypes">
			<map>
				<entry key="json" value="application/json" />
				<entry key="xml" value="application/xml" />
			</map>
		</property>
		<!-- 用于开启 /userinfo/123?format=json 的支持 -->
		<property name="favorParameter" value="true"/>
		<property name="viewResolvers">
			<list>
				
			    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
			        <property name="prefix" value="/pages"/>
			        <property name="suffix" value=".jsp"/>
			    </bean>
			</list>
		</property>
		<property name="defaultViews">
			<list>
				<!-- for application/json -->
				<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
				<!-- for application/xml -->
				<!-- 
				<bean class="org.springframework.web.servlet.view.xml.MarshallingView" >
					<property name="marshaller">
						<bean class="org.springframework.oxm.xstream.XStreamMarshaller"/>
					</property>
				</bean>
				 -->
			</list>
		</property>
    </bean>
    <!-- Mapping exception to the handler view -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
            </props>
        </property>
    </bean>
        
</beans>



web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<!-- Spring ApplicationContext配置文件的路径�,可使用通配符,多个路径用�1,号分隔 此参数用于后面的Spring-Context 
		loader -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:spring/*.xml</param-value>
	</context-param>
	<!-- JSTL i18n定义 -->
	<context-param>
		<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
		<param-value>i18n/messages</param-value>
	</context-param>
	<!-- Character Encoding filter -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<!-- FlashScope filter,在Flash中存储的数据,在下一次http请求中也可以继续引用,使用方法为Flash.current().error("存在错误");
	<filter>
		<filter-name>FlashFilter</filter-name>
		<filter-class>cn.org.rapid_framework.web.scope.FlashFilter</filter-class>
	</filter> -->
	<!-- LoggerMDCFilter,存放在MDC中的数据,log4j可以直接引用并作为日志信息打印出来. -->
	<filter>
		<filter-name>LoggerMDCFilter</filter-name>
		<filter-class>javacommon.filter.LoggerMDCFilter</filter-class>
	</filter>
	<!-- 浏览器不支持put,delete等method,由该filter将_method=delete转换为标准的http delete方法 -->
	<filter>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	</filter>
	<!--Hibernate Open Session in View Filter
	<filter>
		<filter-name>openSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
	</filter> -->
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!--<filter-mapping>
		<filter-name>FlashFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>-->
	<filter-mapping>
		<filter-name>LoggerMDCFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<servlet-name>springmvc</servlet-name>
	</filter-mapping>
	<!--<filter-mapping>
		<filter-name>openSessionInViewFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	Spring ApplicationContext 载入 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- spring security 载入 <filter> <filter-name>springSecurityFilterChain</filter-name> 
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
		</filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> 
		<url-pattern>/*</url-pattern> </filter-mapping> 使Spring支持request与session的scope,如:<bean 
		id="loginAction" class="com.foo.LoginAction" scope="request"/> -->
	<listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
	<!-- Spring 刷新Introspector防止内存泄露 
	<listener>
		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
	</listener>-->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.css</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.jpg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.gif</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.htm</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.xml</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.png</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.swf</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.zip</url-pattern>
	</servlet-mapping>
	<!-- session超时定义,单位为分钟 -->
	<session-config>
		<session-timeout>10</session-timeout>
	</session-config>
	<!-- 默认首页定义 -->
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!-- Error Page定义 -->
	<error-page>
		<error-code>500</error-code>
		<location>/commons/error.jsp</location>
	</error-page>
	<error-page>
		<error-code>404</error-code>
		<location>/commons/404.jsp</location>
	</error-page>
	<error-page>
		<error-code>403</error-code>
		<location>/commons/403.jsp</location>
	</error-page>
	<login-config>
		<auth-method>BASIC</auth-method>
	</login-config>
</web-app>




#################################################################
错误信息如下:

2011-9-1 9:40:37 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet springmvc threw exception
java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest
at com.pdcss.bmxxfb.controller.WzXxfbPdtpController.upload(WzXxfbPdtpController.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:818)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at javacommon.filter.LoggerMDCFilter.doFilterInternal(LoggerMDCFilter.java:51)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)



麻烦各位帮忙看看,之前看了相关资料,上传需要添加multipartResolver,及commons-io.jar,commons-fileupload.jar包,我用的Spring版本是3.0.3,这些jar包在另一个项目里做文件上传,使用的方法一样,是可以正常上传,这个地方类型转换也不会报错,但在这个项目里,就一直报这个错,求各位指点指点。。谢谢。




问题补充:谢谢,您说的这个我看过了,我里面也这样做的,但是报错。
freish 写道


问题补充:我看了他的分析,debug跟踪启动的时候,会初始化一个multipartResolver,
但还是没能解决我的问题。

Rainbow702 写道
引用

<bean id="multipartResolver"       class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
      <!-- set the max upload size100MB --> 
      <property name="maxUploadSize"> 
           <value>104857600</value> 
      </property> 
      <property name="maxInMemorySize"> 
          <value>4096</value> 
      </property> 
</bean>


详情请参见:
http://gary0416.iteye.com/blog/1098912
这位兄弟还作了这个问题的分析


问题补充:谢谢,这个贴子之前也看到过,也配置了multipartResolver,我用相同的commons-fileupload.jar包及io包及Spring相关的包在一个测试项目里做了一个文件上传,能够正常上传,没有报任何的问题,我对比了下web.xml,xxx-servlet.xml,没有实质性的区别,

下面我将测试项目的关键代码放在下面,麻烦帮我看看之前的代码有哪些问题,谢谢

files.jsp:

 <form action="upload" method="post" enctype="multipart/form-data">
        <table width="60%" border="1" cellspacing="0">
            <tr>
                <td width="35%"><strong>File to upload</strong></td>
                <td width="65%"><input type="file" name="file" /></td>
            </tr>
            <!-- 
            <tr>
                <td><strong>Notes</strong></td>
                <td><input type="text" name="notes" width="60" /></td>
            </tr>
             -->
            
            <tr>
                <td>&nbsp;</td>
                <td><input type="submit" name="submit" value="Add"/></td>
            </tr>
        </table>
    </form>



web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
	<!-- Character Encoding filter -->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>HiddenHttpMethodFilter</filter-name>
		<servlet-name>dispatcher</servlet-name>
	</filter-mapping>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>redirect.jsp</welcome-file>
    </welcome-file-list>
</web-app>



dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
    default-autowire="byName"   >

	<!-- 开启支持@NumberFormat @DateTimeFormat @Valid标注 ,@DateTimeFormat用于bean 日期属性的格式化,请查看: http://static.springsource.org/spring/docs/3.0.2.RELEASE/spring-framework-reference/htmlsingle/spring-framework-reference.html#mvc-config-->
   <!--  <mvc:annotation-driven validator="validator"/>-->

	<!-- 自动搜索@Controller标注的类 -->
	<context:component-scan base-package="com.spring.example.web"/>
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
		<!-- 拦截器注册 
		<property name="interceptors">
			<bean class="javacommon.springmvc.interceptor.SharedRenderVariableInterceptor"/>
		</property>-->
	</bean>

    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
	
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<!-- set the max upload size100MB -->
		<property name="maxUploadSize">
			<value>104857600</value>
		</property>
	</bean>

    <!-- 根据客户端的不同的请求决定不同的view进行响应, 如 /blog/1.json /blog/1.xml -->
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    	<property name="ignoreAcceptHeader" value="true"/>
		<property name="defaultContentType" value="text/html"/>
		
    	<!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
		<property name="mediaTypes">
			<map>
				<entry key="json" value="application/json" />
				<entry key="xml" value="application/xml" />
			</map>
		</property>
		<!-- 用于开启 /userinfo/123?format=json 的支持 -->
		<property name="favorParameter" value="true"/>
		<property name="viewResolvers">
			<list>
				<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
			    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
			        <property name="prefix" value="/WEB-INF/jsp/"/>
			        <property name="suffix" value=".jsp"/>
			    </bean>
			</list>
		</property>
    </bean>
    <!-- Mapping exception to the handler view -->
    <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
            </props>
        </property>
    </bean>
        
</beans>



Controller
@Controller
public class FilesController{
@RequestMapping("/upload")
    public ModelAndView upload(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
//这个地方能正常转换,没有报错
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        MultipartFile multipartFile = multipartRequest.getFile("file");

        Files file = new Files();
//下面可以再与逻辑
 return new ModelAndView("redirect:files");
}



Rainbow702 写道


问题补充:
没有新的问题,还是之前的转换错误,没解决呢,我的意思是说fileupload,io,spring的jar包没问题,
估计是哪个地方的配置不对。


Rainbow702 写道
引用

//下面的类型转换就报错了。 
          MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 


引用

//这个地方能正常转换,没有报错 
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 


你上面说转换出错,更新补充又说这块没错,那又有新的问题了?

2011年9月01日 09:46
  • 大小: 37.4 KB
  • 大小: 37.4 KB

13个答案 按时间排序 按投票排序

0 0

// 这种方式只能<form .... enctype="multipart/form-data"> 才可以使用
MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request);
这种方式不用配置xml

2016年5月18日 16:15
0 0

我说下我遇到的问题解决方法
配置,页面,controller都没有问题,问题就出在web.xml里用了struts2的拦截器.里面装饰request的时候已经取了文件,spring的resolver就取不到了.解决方法很简单,用struts2的装饰的request取文件:
public ModelAndView importFile(MultiPartRequestWrapper request){
...
File[] uploadFiles = request.getFiles("uploadFile");
...

2016年3月03日 18:28
0 0

我也遇到这个问题,不过经过抓取请求发现是莫名其妙产生了一个跳转的操作。
比如上传路径是: /upload/image,  请求后得到302跳转请求到 /upload/image/。

把上传路径改为: /upload/image/,没再出现此错误。
具体原因未知。

2014年11月07日 16:13
0 0

最后怎么解决了,遇到同样的问题了

2013年4月17日 11:22
0 0

我也出现了这个问题,
最后发现这个表单提交的时候使用的是ajax方式提交
而jquery默认的ajax提交这个表单并没有将这个type=file的属性序列化上传上去,
最后使用jquery的组件Jquery Form Plugin提交就可以了,
应该不是你配置文件写错了

2013年2月25日 09:11
0 0

MultipartFile multipartFile = multipartRequest.getFile("imgFile");
改为
MultipartFile multipartFile = multipartRequest.getFile("file");

2013年1月24日 10:28
0 0

问题解决了吗?我也是与遇到了同样的问题。

2012年12月31日 15:23
0 0

最后不了了之?

2012年11月01日 10:59
0 0

最好把关键代码打个简单的war包 贴出来 

2011年9月01日 15:48
0 0

引用

//下面的类型转换就报错了。 
          MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 


引用

//这个地方能正常转换,没有报错 
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; 


你上面说转换出错,更新补充又说这块没错,那又有新的问题了?

2011年9月01日 12:40
0 0

那你看下这个贴子呢:
http://blog.csdn.net/lingirl/article/details/1714806

2011年9月01日 10:54
0 0

引用

<bean id="multipartResolver"       class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
      <!-- set the max upload size100MB --> 
      <property name="maxUploadSize"> 
           <value>104857600</value> 
      </property> 
      <property name="maxInMemorySize"> 
          <value>4096</value> 
      </property> 
</bean>


详情请参见:
http://gary0416.iteye.com/blog/1098912
这位兄弟还作了这个问题的分析

2011年9月01日 10:03
0 0

这个有没有帮助:http://gary0416.iteye.com/blog/1098912

2011年9月01日 09:55

相关推荐

    springmvc上传下载图片和文件

    在Spring MVC框架中,处理文件上传和下载是常见的需求,特别是在构建Web应用时。Spring MVC提供了强大的支持,让我们能够方便地实现这些功能。本篇文章将深入探讨如何利用Spring MVC进行图片和文件的上传与下载。 ...

    springMVC学习

    本指南提供了 SpringMVC 的核心思想、框架特点、入门示例、参数传递、标签介绍、拦截器、类型转换、JSON 格式数据的输入和输出、文件上传、国际化和本地化、验证等方面的知识点,旨在帮助开发者快速掌握 SpringMVC ...

    springmvc文件上传

    在`handleFileUpload`方法中,获取到`MultipartFile`对象后,你可以将其内容保存到服务器的某个路径,或者转换成其他格式(如Base64编码)存入数据库。注意处理文件大小、类型和安全问题,避免恶意文件上传。 六、...

    springmvc+poi 导入导出文件controller以及工具类

    接下来,我们可能会有一个名为`ObjectExcelRead.java`的工具类,它包含了一些静态方法,用于帮助解析Excel文件并将其转换为Java对象。例如: ```java public class ObjectExcelRead { public static List...

    Android上传图片到springmvc服务器全

    - 图片数据转换为字符串:Android提供`android.util.Base64`类,可以将`Bitmap`对象转换成Base64字符串,方便在网络上传输。 - Base64是一种常见的二进制转文本编码方式,它将8位的字节序列转化为7位可打印字符,...

    springmvc_02 高级参数绑定 异常处理 文件上传

    - `@ResponseBody`:用于将Java对象转换为JSON数据并发送到客户端。 - **交互演示**:编写示例代码展示如何发送和接收JSON数据。 #### 七、RESTful支持 - **RESTful简介**:RESTful是一种设计风格,通过HTTP方法...

    SpringMVC上传文件,用poi通过excel批量添加数据,向数据库中添加对象,对象涉及日期格式,Boolean格式提供思路

    在SpringMVC框架中,实现文件上传功能并利用Apache POI库从Excel文件批量导入数据到数据库是一项常见的任务。以下是一步一步详细说明如何完成这个过程: 1. **依赖管理**: 首先,确保引入了正确的依赖库。在Maven...

    springmvc高级.docx

    通过`@ResponseBody`注解,我们可以将方法返回的对象转换成JSON,然后发送到客户端。反之,使用`@RequestBody`可以将JSON请求体解析为方法参数。Jackson库通常被用来进行JSON序列化和反序列化。 5. **RESTful支持**...

    volley图片上传服务端

    3. **创建Request对象**:创建一个自定义的`Request&lt;ResponseBody&gt;`子类,如`UploadImageRequest`,并重写`getBody()`方法返回RequestBody对象。还需要实现`getHeaders()`来设置Content-Type和其它必要的请求头。 4...

    springMVC+jersey实现跨服务器文件上传

    首先,要实现跨服务器文件上传,我们需要在SpringMVC的配置文件中设置一个文件上传解析器。这个解析器用于处理HTTP请求中的多部分数据,即文件内容。在本例中,我们使用的是`CommonsMultipartResolver`,这是Spring...

    springmvc 4.1

    通过在控制器方法参数中声明`List&lt;MultipartFile&gt;`或`MultipartFile`,你可以接收用户上传的文件。同时,需要配置`CommonsMultipartResolver`作为multipart resolver,以支持文件上传。 2. **拦截器(Interceptor)...

    poi excel 读写 2007 springmvc

    例如,创建一个接收文件上传的接口,然后使用Apache POI处理文件: ```java @PostMapping("/upload") public ResponseEntity&lt;?&gt; handleFileUpload(@RequestParam("file") MultipartFile file) { try { OPCPackage...

    springMVC 注解版

    - `@RequestBody`:将请求体内容转换为 Java 对象。 **4. Model 和 View** - `@ModelAttribute`:用于绑定模型属性,可以将对象放入模型,供视图层使用。 - `ModelAndView`:用于返回模型和视图,可以通过它设置...

    android实现图片上传功能(springMvc)

    接着,创建一个`File`对象来表示待上传的图片文件,并用`RequestBody.create()`方法将其转换为可上传的请求体`requestBody1`。这里需要注意,我们需要指定媒体类型`"multipart/form-data"`,这是上传文件时的标准...

    Springmvc加ajax实现上传文件并页面局部刷新

    为了处理文件上传,我们需要创建一个`FormData`对象,然后使用`append`方法将文件添加到这个对象中。例如: ```javascript var formData = new FormData(); formData.append('file', $('#fileInput')[0].files[0]);...

    springmvc全部jar包

    8. **@RequestBody** 和 **@ResponseBody**:@RequestBody用于将HTTP请求体中的JSON或XML数据转换为Java对象,而@ResponseBody则将Java对象转换为HTTP响应体,常用于RESTful API的开发。 9. **拦截器(Interceptor...

    springmvc-demo05-数据绑定(接受参数).zip

    7. **多部分文件上传** 在处理文件上传的场景中,Spring MVC提供了`MultipartFile`接口,可以方便地接收和处理HTTP请求中的multipart/form-data类型的数据。 8. **模型属性的预处理** 通过`@InitBinder`注解,...

    Android客户端与服务器端的json数据交互(内含大量知识点)

    2. 使用RequestBody:Retrofit支持直接将文件作为RequestBody上传,简化了文件上传的处理。 五、文件浏览器 1. 文件选择器:Android提供了Intent机制,可以调用系统文件选择器,让用户选择文件。 2. 自定义文件...

    SpringMVC【入门】篇

    2. 响应 JSON 数据:通过 @ResponseBody 注解结合 JSON 序列化库(如 Jackson 或 Gson)将对象转换为 JSON 字符串。 3. 文件上传:SpringMVC 支持传统方式和跨服务器方式的文件上传,需要配置 Filter 解决中文乱码...

    SSM集成应用

    SpringMVC支持常见的文件上传功能。 **11.2 Spring文件上传和下载** 具体的实现细节,如使用MultipartFile类处理文件。 **11.3 异常处理** 通过@ControllerAdvice和@ExceptionHandler注解处理异常。 **11.4 ...

Global site tag (gtag.js) - Google Analytics