SpringMVC文件上传 多文件上传实例_java

必须明确告诉DispatcherServlet如何处理MultipartRequest。
SpringMVC中提供了文件上传使用方式如下
配置xxx-servlet.xml,添加如下代码:

复制代码 代码如下:

<bean id="multipartResolver" 
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
        <!-- 设置上传文件的最大尺寸为1MB --> 
    <property name="maxUploadSize"> 
        <value>1048576</value> 
    </property> 
</bean> 

复制代码 代码如下:

<bean id="multipartResolver" 
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
        <!-- 设置上传文件的最大尺寸为1MB --> 
    <property name="maxUploadSize"> 
        <value>1048576</value> 
    </property> 
</bean> 

注意这里的文件尺寸实际上只的是所以文件总大小
如果配置了文件大小就以为这你需要配置异常信息控制
所以需要配置异常显示

复制代码 代码如下:

<!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException --> 
    <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 --> 
    <bean id="exceptionResolver" 
        class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
        <property name="exceptionMappings"> 
            <props> 
                <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 --> 
                <prop 
                    key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop> 
            </props> 
        </property> 
    </bean>

复制代码 代码如下:

<!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException --> 
    <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 --> 
    <bean id="exceptionResolver" 
        class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
        <property name="exceptionMappings"> 
            <props> 
                <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 --> 
                <prop 
                    key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop> 
            </props> 
        </property> 
    </bean> 

或者偷懒点,不设置大小,则最终默认是值为不限制。如果非要控制返回信息,可以考虑在地应以的异常处理中返回指定格式数据,例如JSON

配置完了页面上一如既往的需要再form表单中增加:enctype="multipart/form-data"
然后就是需要处理的action了,可以有两种方式
第一种方式:

复制代码 代码如下:

public String login( @RequestParam MultipartFile file, Model model) {  
………………  

复制代码 代码如下:

public String login( @RequestParam MultipartFile file, Model model) { 
……………… 

其中file的名字必须保证与<input type=file>中的那么属性值保持一致,若果是多文件上传,则考虑使用

复制代码 代码如下:

public String login(@Valid UserInfo userInfo, BindingResult result, @RequestParam MultipartFile[] files, Model model) {  
………………  

复制代码 代码如下:

public String login(@Valid UserInfo userInfo, BindingResult result, @RequestParam MultipartFile[] files, Model model) { 
……………… 

单文件可以省略 @RequestParam 多文件则不可省略

第二种方式:

复制代码 代码如下:

public ModelAndView handleRequest(HttpServletRequest request,     
            HttpServletResponse response) throws Exception {     
        // 转型为MultipartHttpRequest:     
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;     
        // 获得文件:     
        MultipartFile file = multipartRequest.getFile(" file ");    
    }

复制代码 代码如下:

public ModelAndView handleRequest(HttpServletRequest request,    
            HttpServletResponse response) throws Exception {    
        // 转型为MultipartHttpRequest:    
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;    
        // 获得文件:    
        MultipartFile file = multipartRequest.getFile(" file ");   
    } 

这样也可以获取到文件

其实刚才首先需要配置是加入两个 jar包:

commons-fileupload-1.2.2.jar
commons-io-2.1.jar

时间: 2024-09-14 07:40:54

SpringMVC文件上传 多文件上传实例_java的相关文章

JAVA读取文件夹大小的几种方法实例_java

(一)单线程递归方式 复制代码 代码如下: package com.taobao.test; import java.io.File; public class TotalFileSizeSequential {     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk";     // 递归方式 计算文件的大小    private long getTo

SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

  林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程免费下载 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和S

Java操作,springMVC上传的文件

上篇文章写了如何用springMVC上传文件,现在记录一下如何操作上传的文件. 操作,无非是读取文件,写入磁盘上另一个文件中.(用的IO,NIO正在研究). InputStream fis =null; FileOutputStream fos= null; SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss"); 1.获取文件名: //要上传的附件名,带后缀 String accessName = form.get

SpringMVC结合ajaxfileupload.js实现文件无刷新上传_java

直接看代码吧,注释都在里面  首先是web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例_java

基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤 文件上传项目的源码下载地址:demo 一.配置文件: SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file <!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->

SpringMVC上传多文件

springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传.这两种方式对于实 现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方式,同时比较一下在效率上到底存在着多大的差距. 1.下载相关jar包. 需要引入的jar出了springMVC的jar包外,还需要引入 com.springsource.org.apache.commons.fileupload-1.2.0.jar和

Java Spring MVC 上传下载文件配置及controller方法详解_java

下载: 1.在spring-mvc中配置(用于100M以下的文件下载) <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!--配置下载返回类型--> <bean class="or

vb60-vb 怎么用winsoc控件 ftp上传下载文件

问题描述 vb 怎么用winsoc控件 ftp上传下载文件 急求 vb 怎么用winsock控件 ftp上传下载文件,还有没有其他的做法,简单就好 解决方案 inet 比较简单,winsock有固定API调用,网上很多 InetFTP.UserName = txtusername.Text InetFTP.Password = txtpassword.Text InetFTP.Execute host_name, "Get logxxxx" Do While InetFTP.Still

Strust2上传Xls文件 数据超过200条就找不到action

问题描述 Strust2上传Xls文件 数据超过200条就找不到action Strust2上传XLS文件的时候 文件中的数据超过200条就找不到action 我在本地限制了一下 但是到了服务器还是不找不到action package com.actions; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import jav