一、配置文件:
SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file。在springmvc.xml中进行配置,目录结构如下:

<!-- 配置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="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data"><input type="file" name="img"></br><input type="submit" value="上传">
</form>
</body> 

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

三、编写上传控制类

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

  //单个文件上传@RequestMapping("upload")public String tolist(@RequestParam("img") MultipartFile img) throws IOException {//上传图片名称String originalFilename = img.getOriginalFilename();//上传路径File file = new File("E:\\upload\\" + originalFilename);if(!file.exists()){file.mkdir();}//将内存中的文件上传到磁盘img.transferTo(file);return "list";}

3、使用SpringMVC注解RequestParam来指定表单中的img参数;
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="${pageContext.request.contextPath}/fileUpload" method="post" enctype="multipart/form-data"><input type="file" name="img"></br><input type="file" name="img"></br><input type="file" name="img"></br><input type="submit" value="上传">
</form>
</body>

2、编写处理表单的action

 //多文件上传@RequestMapping("fileUpload")@ResponseBodypublic String file(@RequestParam("img") MultipartFile[] img) throws IOException {for (int i = 0; i <img.length ; i++) {//上传图片名称String originalFilename = img[i].getOriginalFilename();//上传路径File file = new File("E:\\upload\\" + originalFilename);if(!file.exists()){file.mkdir();}//将内存中的文件上传到磁盘img[i].transferTo(file);}return "success";}

MultipartFile文件上传相关推荐

  1. 使用SpringMVC 的MultipartFile文件上传时参数获取的一个坑

    2019独角兽企业重金招聘Python工程师标准>>> 最近在做文件上传,看到SPRINGMVC以做了一些封装,就打算以使用它来做上传.但马我就遇到了接收不到文件参数的问题.都是按照 ...

  2. WebMvc中MultipartFile文件上传

    /**          * 文件上传总结:          * 1.标注注解 @RequestPart(name = "file1") MultipartFile multip ...

  3. 初步理解MultipartFile[文件上传]

    浅识MultipartFile 一.概述 二.对MultipartFile初步理解 1.MultipartFile类的注释说明 2.MultipartFile常用方法解析 三.MultipartFil ...

  4. MultipartFile 文件上传

    Spring Boot + Html + FormDate 实现参数和文件同时提交 前台页面 + JS <form><input type="file" name ...

  5. html文件上传删除,文件上传以及删除文件方法

    文件上传公共方法 1.[代码][Java]代码 import java.io.File; import java.util.Date; import javax.servlet.http.HttpSe ...

  6. SpringBoot(FastDFS文件上传)

    FastDFS 相关概念 FastDFS 服务端有三个⻆色:跟踪服务器(Tracker Server).存储服务器(Storage Server)和客户端(Client). Tracker Serve ...

  7. java多文件上传plupload控件实现多图片上传(二)

    接上篇 java多文件上传plupload控件实现多图片上传(一) 续写PluploadUtil 和 Plupload PO类,以及后台的action. 至此,可实现多文件上传功能. 上传文件Acti ...

  8. 解决使用Spring Boot、Multipartfile实现上传提示无法找到文件的问题

    解决使用Spring Boot.Multipartfile实现上传提示无法找到文件的问题 参考文章: (1)解决使用Spring Boot.Multipartfile实现上传提示无法找到文件的问题 ( ...

  9. 利用MultipartFile实现文件上传

    利用MultipartFile实现文件上传 在java中上传文件似乎总有点麻烦,没.net那么简单,记得最开始的时候用smartUpload实现文件上传,最近在工作中使用spring的Multipar ...

最新文章

  1. 图Graph--最短路径算法(Shortest Path Algorithm)
  2. RabbitMQ管理界面简述_入门试炼_第3篇
  3. python批量读取文件名_Python遍历目录并批量更换文件名和目录名的方法
  4. linux 更换窗口管理器,linux Gnome .KDE.xfce4窗口管理器切换
  5. ssas表格模型 权限控制_Analysis Services(SSAS)表格模型中的时间智能
  6. Android 通过Socket 和服务器通讯
  7. html圆如何找到垂直中心线,一种用于找中心线及圆心的装置的制作方法
  8. iOS:对GCD中 同步、异步、并行、串行的见解
  9. 基于大数据的高校贴吧舆情数据分析系统
  10. use mysql命令_mysql命令-use
  11. 多曝光HDR成像 跑出来的图片颜色变绿
  12. win10底部任务栏无响应 解决办法
  13. 做游戏,学编程(C语言) 14 口袋妖怪
  14. allegro标注尺寸设置_Allegro中尺寸标注参数的设置-EDA/PCB-与非网
  15. 冷链物流行业市场调研 冷链物流将朝着智慧化方向发展
  16. 2018漫画春秋战国
  17. 误删除Linux下/etc/shadow文件,linux修改密码出现Authentication token manipulation error的解决办法
  18. VAS开启LaFi空投——助力打造区块链数字黄金新生态
  19. 生命不息,折腾不止——新的起点
  20. 网络数据包转发过程详解

热门文章

  1. 哈工大LTP本地安装及python调用
  2. DGL_图的创建、保存、加载
  3. 多生产者-多消费者问题
  4. oracle Sql语句分类
  5. 什么时候使用CountDownLatch
  6. Java9都快发布了,Java8的十大新特性你了解多少呢?
  7. 成都Uber优步司机奖励政策(3月17日)
  8. Chapter 3.GDI/DirectDraw Internal Data Structures
  9. windows下的_mkdir函数
  10. 如何搭建一个 Data Guard 环境