SpringMVC使用MultipartFile实现文件上传

本文实例为大家分享了SpringMVC使用MultipartFile实现文件上传的具体代码,供大家参考,具体内容如下

一、配置文件

SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file

<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->
  <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
    p:defaultEncoding="UTF-8"
    p:maxUploadSize="5400000"
    p:uploadTempDir="fileUpload/temp"
   >
</beans:bean>

其中属性详解:
defaultEncoding="UTF-8" 是请求的编码格式,默认为iso-8859-1
maxUploadSize="5400000" 是上传文件的大小,单位为字节
uploadTempDir="fileUpload/temp" 为上传文件的临时路径

二、创建一个简单的上传表单

<body>
<h2>文件上传实例</h2> 

<form action="fileUpload.html" method="post" enctype="multipart/form-data">
  选择文件:<input type="file" name="file">
  <input type="submit" value="提交">
</form> 

</body>

注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件的,这是最基本的东西,很多人会忘记然而当上传出错后则去找程序的错误,却忘了这一点。

三、编写上传控制类

1、创建一个控制类: FileUploadController和一个返回结果的页面list.jsp
2、编写提交表单的action

//通过Spring的autowired注解获取spring默认配置的request
  @Autowired
  private HttpServletRequest request; 

  /***
   * 上传文件 用@RequestParam注解来指定表单上的file为MultipartFile
   *
   * @param file
   * @return
   */
  @RequestMapping("fileUpload")
  public String fileUpload(@RequestParam("file") MultipartFile file) {
    // 判断文件是否为空
    if (!file.isEmpty()) {
      try {
        // 文件保存路径
        String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
            + file.getOriginalFilename();
        // 转存文件
        file.transferTo(new File(filePath));
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    // 重定向
    return "redirect:/list.html";
  } 

  /***
   * 读取上传文件中得所有文件并返回
   *
   * @return
   */
  @RequestMapping("list")
  public ModelAndView list() {
    String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";
    ModelAndView mav = new ModelAndView("list");
    File uploadDest = new File(filePath);
    String[] fileNames = uploadDest.list();
    for (int i = 0; i < fileNames.length; i++) {
      //打印出文件名
      System.out.println(fileNames[i]);
    }
    return mav;
  }

3、使用SpringMVC注解RequestParam来指定表单中的file参数;
4、指定一个用于保存文件的web项目路径
5、通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。

到此基本的文件上传就结束了。

MultipartFile类常用的一些方法:

String getContentType()//获取文件MIME类型
InputStream getInputStream()//后去文件流
String getName() //获取表单中文件组件的名字
String getOriginalFilename() //获取上传文件的原名
long getSize()  //获取文件的字节大小,单位byte
boolean isEmpty() //是否为空
void transferTo(File dest) //保存到一个目标文件中。

四、多文件上传

多文件上传其实很简单,和上传其他相同的参数如checkbox一样,表单中使用相同的名称,然后action中将MultipartFile参数类定义为数组就可以。
接下来实现:

1、创建一个上传多文件的表单:

<body>
  <h2>上传多个文件 实例</h2>
  <form action="filesUpload.html" method="post"
    enctype="multipart/form-data">
    <p>
      选择文件:<input type="file" name="files">
    <p>
      选择文件:<input type="file" name="files">
    <p>
      选择文件:<input type="file" name="files">
    <p>
      <input type="submit" value="提交">
  </form>
</body>

2、编写处理表单的action,将原来保存文件的方法单独写一个方法出来方便共用:

/***
   * 保存文件
   * @param file
   * @return
   */
  private boolean saveFile(MultipartFile file) {
    // 判断文件是否为空
    if (!file.isEmpty()) {
      try {
        // 文件保存路径
        String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
            + file.getOriginalFilename();
        // 转存文件
        file.transferTo(new File(filePath));
        return true;
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    return false;
  }
3、编写action:
  @RequestMapping("filesUpload")
  public String filesUpload(@RequestParam("files") MultipartFile[] files) {
    //判断file数组不能为空并且长度大于0
    if(files!=null&&files.length>0){
      //循环获取file数组中得文件
      for(int i = 0;i<files.length;i++){
        MultipartFile file = files[i];
        //保存文件
        saveFile(file);
      }
    }
    // 重定向
    return "redirect:/list.html";
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • SpringMVC使用MultipartFile 实现异步上传方法介绍
  • SpringMVC中MultipartFile上传获取图片的宽度和高度详解
  • SpringMvc MultipartFile实现图片文件上传示例
  • 详解SpringMVC使用MultipartFile实现文件的上传
  • SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例
(0)

相关推荐

  • 详解SpringMVC使用MultipartFile实现文件的上传

    如果需要实现跨服务器上传文件,就是将我们本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传.这里是结合SpringMVC+ftp的形式上传的.我们需要先懂得如何配置springMVC,然后在配置ftp,最后再结合MultipartFile上传文件. springMVC上传需要几个关键jar包,spring以及关联包可以自己配置,这里主要说明关键的jar包 1:spring-web-3.2.9.RELEASE.jar (spring的关键jar包,版本可以自己选择) 2:commons-

  • SpringMVC中MultipartFile上传获取图片的宽度和高度详解

    SpringMVC一般使用MultipartFile来做文件的上传,通过MultipartFile的getContentType()方法判定文件的类型(MIME) ".doc":"application/msword" ".jpg":"image/jpeg" ".jpeg":"image/jpeg" ".png":"image/png" -. 有时

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

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

  • SpringMvc MultipartFile实现图片文件上传示例

    整理文档,搜刮出一个SpringMvc MultipartFile实现图片文件上传示例,稍微整理精简一下做下分享. spring-servlet.xml <!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver&qu

  • SpringMVC使用MultipartFile 实现异步上传方法介绍

    目的是实现异步上传 1.添加pom依赖 添加pom依赖,因为用的ajax,数据需要转成json的格式进行传输,所以还有加入一个JSON jar包: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>

  • SpringMVC使用MultipartFile实现文件上传

    本文实例为大家分享了SpringMVC使用MultipartFile实现文件上传的具体代码,供大家参考,具体内容如下 一.配置文件 SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file <!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver --> <beans:bean id="multipartResol

  • springMVC配置环境实现文件上传和下载

    最近的项目中用到了文件的上传和下载功能,我觉着这个功能比较重要,因此特意把它提取出来自己进行了尝试. 下面就是springMVC配置环境实现文件上传和下载的具体步骤,供大家参考,具体内容如下 一. 基础配置: maven导包及配置pom.xml,导包时除开springmvc的基础依赖外,需要导入文件上传下载时用到的commons-io.jsr和commons-fileupload.jar: <project xmlns="http://maven.apache.org/POM/4.0.0&

  • 利用SpringMVC和Ajax实现文件上传功能

    个人根据相关资料实现利用SpringMVC和Ajax实现文件上传功能: 环境: 1.JDK1.7 2.maven3.3.9 3.Tomcat7 第一步: 导入相关jar包: 第二步: 配置springmvc-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xml

  • SpringMVC使用ResponseEntity实现文件上传下载

    目录 使用 ResponseEntity 实现文件上传和下载 下载 上传 使用 ResponseEntity 实现文件上传和下载 在 static 下新建一个 img ,并且我放了一张图片在里面,然后重新 maven 打包一下. 下载 新建一个页面file.html,并且配置视图控制器,以便跳转: <mvc:view-controller path="/file" view-name="file"></mvc:view-controller>

  • springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项

    在使用easyUI做前端样式展示时,遇到了文件上传的问题,而且是在弹出层中提交表单,想做到不刷新页面,所以选择了使用ajaxFileUpload插件.提交表单时一直发现后台接收不到文件,后检查发现,原来是文件的id不对. 文件上传框我们定义如下: <input class="easyui-filebox" id="image" name="image" data-options="label:'产品图片:',buttonText:

  • 利用MultipartFile实现文件上传功能

    在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的MultipartFile实现文件上传,感觉挺简单,在这里和大家分享一下. 一.主要有两个java类,和一般的servlet放在一起即可. 1.FileUploadBean.java package chb.demo.web; import org.springframework.web.multipart.MultipartFile; /** * @aut

  • SpringMVC 通过commons-fileupload实现文件上传功能

    配置 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/n

  • springmvc实现跨服务器文件上传功能

    本文实例为大家分享了springmvc实现跨服务器文件上传功能的具体代码,供大家参考,具体内容如下 1.创建一个新的maven工程并且部署tomcat,用于做图片服务器并且在webapp下创建uploads文件 2.在应用服务器上的pom.xml导入坐标 <!--跨服务器上传文件--> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifa

  • SpringMVC下实现Excel文件上传下载

    在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据等等场景.针对这个问题,我写了个基于SpringMVC的简单上传下载示例,其中Excel的处理使用Apache的POI组件. 主要依赖的包如下: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</versi

随机推荐