springboot2.0里貌似不须要添加额外的jar就能够上传了前端
首先要配置好bean:spring
1 @Configuration 2 public class Config { 3 4 @Bean 5 public MultipartConfigElement multipartConfigElement(){ 6 MultipartConfigFactory factory=new MultipartConfigFactory(); 7 factory.setMaxFileSize("5MB"); 8 factory.setMaxRequestSize("5MB"); 9 return factory.createMultipartConfig(); 10 } 11 }
而后页面的form表单必需要有 enctype="multipart/form-data" 属性:api
1 <form class="form-horizontal" method="POST" action="/uploading" enctype="multipart/form-data"> 2 文件名称:<input type="text" name="fileName"> 3 选择文件<input type="file" id="upload" name="file"/> 4 <div class="form-group"> 5 <div> 6 <button type="submit" class="btn btn-success" id="btn_upload">提交</button> 7 <input type="reset" class="btn btn-danger" value="重置"/> 8 </div> 9 </div> 10 </form>
而后方法中要有 MultipartFile 参数,若是时接收多个图片的话能够写成数组就好 MultipartFile[ ] ,还有问题的话得在这个参数前加上@RequestParam注解,注解的value属性就是这儿参数的参数名.数组
还有一种不经过这个参数接收上传的文件,直接从request中获取,须要参数 HttpServletRequest 参数.springboot
而后将这个request转成 MultipartHttpServletRequest ,而后 getFiles("name值") 获取到指定name值的文件,这里返回的是一个list集合,就是说能够获取多个相同name属性值的文件.spa
还有其余的api获取文件,getFile() 获取指定名称的单个文件,前提是name属性值惟一操做和使用 MultipartFile 参数同样,由于这个方法返回的就是这个对象,code
还有 getFileMap() 方法返回一个 MultipartFile 类型的map集合,map集合的key是惟一不重复的,因此前端传过来的name值不能相同,否则无法用这个.而后根据key找value,value就是一个 MultipartFile 对象.orm
最后一个就是 getMultiFileMap() 这个其实跟 getFileMap() 用法是同样的对象
其实还有一个 getFileNames() ,这个没搞明白用来干吗的...blog