springboot2.0上傳文件接收不到文件數據解決


springboot2.0里貌似不需要添加額外的jar就可以上傳了

首先要配置好bean:

  

 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" 屬性:

  

 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 參數.

然后將這個request轉成 MultipartHttpServletRequest ,然后 getFiles("name值") 獲取到指定name值的文件,這里返回的是一個list集合,就是說可以獲取多個相同name屬性值的文件.

還有其他的api獲取文件,getFile() 獲取指定名稱的單個文件,前提是name屬性值唯一操作和使用 MultipartFile 參數一樣,因為這個方法返回的就是這個對象,

還有 getFileMap() 方法返回一個 MultipartFile 類型的map集合,map集合的key是唯一不重復的,所以前端傳過來的name值不能相同,不然沒法用這個.然后根據key找value,value就是一個 MultipartFile 對象.

最后一個就是 getMultiFileMap() 這個其實跟 getFileMap() 用法是一樣的

其實還有一個 getFileNames() ,這個沒搞明白用來干嘛的...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM