Spring MVC 之 DispatcherServlet之Multipart

org.springframework.web.multipart.MultipartResolver 提供了一种处理表单上传文件的解决方案,有两种实现方式,一种是基于 Apache 的 Commons-Fileupload,另一种是基于 Servlet 3.0 的。

首先要在 Spring 的配置文件中为 DispatcherServlet 声明一个叫做 MultipartResolver 的 bean,DispatcherServlet 会自动识别并调用它来处理文件上传请求。它会将 content-type 为 multipart/form-data 的请求包装成 MultipartHttpServletRequest,从而将这些 “part” 暴露为请求的一个参数。

Apache FileUpload

要想使用 Apache Commons-Fileupload,需要将 multipartResolver bean 配置为 CommonsMultipartResolver,另外不要忘了添加 commons-fileupload 的依赖。

    <!-- 文件上传 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="1024"></property>
	</bean>

Servlet 3.0

如果通过 Servlet 3.0 处理 multipart 请求,则同样需要在 DispatcherServlet 中注册。在 Java 代码中配置的话,需要添加一个 MultipartConfigElement;在 xml 文件中配置的话,添加 节点。文件大小限制和文件保存位置等选项同样需要这样配置,因为在 Servlet 3.0 以后,不允许 MultipartResolver 这么干了。

Servlet 3.0 配置好后,只需要在 xml 文件中将 multipartResolver hean 配置为 StandartMultipartResolver 即可。

猜你喜欢

转载自blog.csdn.net/weixin_42868638/article/details/82953171