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