作者:ssslinppp      

1. 摘要



前篇文章讲解了单文件上传《【Spring学习笔记-MVC-13】Spring MVC之文件上传》http://www.cnblogs.com/ssslinppp/p/4607043.html (请参考)。本文主要讲多文件上传的过程。
主要区别在于控制层代码不同,同时,jsp代码也有相应修改。

2. 添加jar包



  1. commons-fileupload-1.2.2.jar;
  2. commons-io-2.0.1.jar;

3. 配置CommonsMultipartResolver





说明:
  • p:defaultEncoding="UTF-8":这里设置默认的文件编码为UTF-8,必须与用户JSP的默认编码一致;
  • p:maxUploadSize="5000000":指定文件上传大小,单位为字节;
  • p:uploadTempDir="upload/temp":文件上传临时目录,上传完成后,就会将临时文件删除;

4.控制层代码




  1. @RequestMapping(value = "/upload")
  2. public String updateThumb(HttpServletRequest request,
  3. HttpServletResponse response, ModelMap mmMap)
  4. throws IllegalStateException, IOException {
  5. // 创建一个通用的多部分解析器
  6. CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
  7. request.getSession().getServletContext());
  8. //判断 request 是否有文件上传,即多部分请求
  9. if(multipartResolver.isMultipart(request)){
  10. //转换成多部分request
  11. MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
  12. //取得request中的所有文件名
  13. Iterator<String> iter = multiRequest.getFileNames();
  14. while(iter.hasNext()){
  15. //取得上传文件
  16. MultipartFile file = multiRequest.getFile(iter.next());
  17. //对上传文件进行处理
  18. if(!file.isEmpty()){
  19. String path = request.getSession().getServletContext()
  20. .getRealPath("upload");
  21. String fileName = file.getOriginalFilename();
  22. File targetFile = new File(path, fileName);
  23. if(!targetFile.exists()){
  24. targetFile.mkdirs();
  25. }
  26. //保存
  27. try {
  28. file.transferTo(targetFile);
  29. System.out.println("保存文件【"+file.getOriginalFilename()+"】完成...");
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. }
  35. }
  36. return "success";
  37. }



5. 前台JSP





6. 上传结果






其他





附件列表

【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传的更多相关文章

  1. 【Spring学习笔记-MVC-15.1】Spring MVC之异常处理=404界面

    作者:ssslinppp       异常处理请参考前篇博客:<[Spring学习笔记-MVC-15]Spring MVC之异常处理>http://www.cnblogs.com/sssl ...

  2. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  3. Spring MVC 使用介绍(十四)文件上传下载

    一.概述 文件上传时,http请求头Content-Type须为multipart/form-data,有两种实现方式: 1.基于FormData对象,该方式简单灵活 2.基于<form> ...

  4. Spring学习笔记(一)—— Spring介绍及入门案例

    一.Spring概述 1.1 Spring是什么 Spring是一个开源框架,是于2003年兴起的一个轻量级的Java开发框架, 由Rod Johnson 在其著作<Expert one on ...

  5. spring mvc利用MultipartResolver解析Multipart/form-data进行文件上传

    之前的表单数据都是文本数据,现记录:利用MultipartResolver进行文件上传. ①首先,需引入commons-fileUpload和commons-io jar包,pom.xml文件的坐标: ...

  6. maven中的pom配置文件一——spring,mybatis,oracle,jstl,json,文件上传

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  7. Spring学习笔记(四)-- Spring事务全面分析

    通过本系列的文章对Spring的介绍,我们对Spring的使用和两个核心功能IOC.AOP已经有了初步的了解,结合我个人工作的情况,因为项目是金融系 统.那对事务的控制是不可缺少的.而且是很严格的控制 ...

  8. Spring学习笔记4—流程(Spring Web Flow)

    Spring Web Flow是Spring框架的子项目,作用是让程序按规定流程运行. 1 安装配置Spring Web Flow 虽然Spring Web Flow是Spring框架的子项目,但它并 ...

  9. Spring学习笔记(二)Spring基础AOP、IOC

    Spring AOP 1. 代理模式 1.1. 静态代理 程序中经常需要为某些动作或事件作下记录,以便在事后检测或作为排错的依据,先看一个简单的例子: import java.util.logging ...

随机推荐

  1. 快速切题 sgu115. Calendar 模拟 难度:0

    115. Calendar time limit per test: 0.25 sec. memory limit per test: 4096 KB First year of new millen ...

  2. MinGW安装教程——著名C/C++编译器GCC的Windows版本

    前言本文主要讲述如何安装 C语言 编译器——MinGW,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用. 编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他人更 ...

  3. Java通过class文件得到所在jar包

    今天遇到一个问题,需要通过知道的class文件得到该文件所在的jar包,试过很多办法都不行,最后在网上找到了一个解决办法,如下: demo.java 1 2 String path = XXX.cla ...

  4. DevExpress v18.1新版亮点——WPF篇(四)

    用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载& ...

  5. ios平台cocos2d-x播放音频、视频、音效的Demo(支持网络视频)

    最近由ios应用转做游戏,游戏开始时需要播放一个视频,由于本身cocos2d-x播放视频的相关库,在网上搜到的资料都不是很全,我自己试过在cocos2dx直接调用ios的MediaPlayer来播放, ...

  6. php 给对象动态增加属性 及子类继承父类的构造方法

    <?php error_reporting(-1); ini_set('display_errors','on'); class A { public $a = 'hello'; public  ...

  7. NSScanner

    NSScanner NSScanner:该类主要实现对字符串扫描.并且该扫描必须从头到尾扫描(也可以跳到指定的地方进行扫描),开始扫描必须应用到函数,连续的数字之间可以用空格隔开,如:35 15.2 ...

  8. 解决在转发一条内容为满的彩信,删除主题FWD,发送的时候提示转化为短信。

    问题描述: 1.长按一条输入内容为满的彩信,选择转发 2.输入联系人-删除主题FWD-发送 测试结果为:提示正转化为短信(见附件) 预期结果为:不应该有提示,应该还是彩信 测试结果图为: 根据提示的T ...

  9. 添加react-router

    1.index.js 内容: import React from 'react' import ReactDOM from 'react-dom' import { renderRoutes } fr ...

  10. Linux下mysql操作

    1.linux下MYSQL的启动与访问 http://www.cnblogs.com/hunter007/articles/2251795.html 2.linux下mysql基本的操作 http:/ ...