论坛首页 Java企业应用论坛

Spring 中关于文件上传与 MultipartResolver

浏览 2845 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-11   最后修改:2010-01-26
关键字: spring
在 Spring 中, MultipartResolver 主要用来处理文件上传,它支持 Commons FileUpload (http://jakarta.apache.org/commons/fileupload) 和 COS FileUpload (http://www.servlets.com/cos)。
缺省,Spring是没有multipart处理,因为一些开发者想要自己处理它们。如果你想使用Spring的multipart,需要在 web应用的上下文中添加multipart解析器。这样,每个请求就会被检查是否包含multipart。然而,如果请求中包含multipart,你的上下文中定义的MultipartResolver就会解析它。这样,你请求中的multipart属性就会象其它属性一样被处理。
主要配置如下:
Java代码

   1. <bean id="multipartResolver"     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
   2. <!-- 该属性用来配置可上传文件的最大 byte 数 --> 
   3. <property name="maximumFileSize"><value>100000</value></property> 
   4. </bean> 

<bean id="multipartResolver"     class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 该属性用来配置可上传文件的最大 byte 数 -->
<property name="maximumFileSize"><value>100000</value></property>
</bean>


该 Bean 还有其它的属性如 defaultEncoding, maxInMemorySize, servletContext, uploadTempDir 一般默认就可以了。
其它的配置和普通的没有什么区别,当然在上传的表单中必须指定其 enctype 为 mulitpart/form-data ,如:
Java代码

   1.  <form method="post" action="upload.html" enctype="multipart/form-data"> 
   2.     <input type="file" name="paper" /> 
   3.     <input type="text" name="name"/> 
   4.     <input type="submit"/> 
   5. </form> 

<form method="post" action="upload.html" enctype="multipart/form-data">
    <input type="file" name="paper" />
    <input type="text" name="name"/>
    <input type="submit"/>
</form>

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics