springboot中文件上傳和springmvc文件上傳並無什麼大的不一樣,只是在springboot中少了些配置,好比上傳文件大小和文件類型html
1.新建一個頁面用戶測試文件上傳spring
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <h2>hello world!static!</h2> <form action="/sp/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上傳"> </form> </body> </html>
2.編寫後臺邏輯springboot
@RequestMapping("/upload") public String uploadFile(@RequestParam("file")MultipartFile multipartFile){ String fileName=multipartFile.getOriginalFilename(); System.out.println("fileName:"+fileName); String filePath="d:/upload/"+ UUID.randomUUID().toString()+fileName.substring(fileName.indexOf(".")); try { multipartFile.transferTo(new File(filePath)); } catch (IOException e) { e.printStackTrace(); return "上傳失敗"; } return "上傳成功"; }
注意點:mvc
1.使用@RequestParam("file")接收參數,這個file須要和html頁面中的input框的name=「」file「」對應app
2.MultipartFile 對象的transferTo方法,用於文件保存(效率和操做比原先用FileOutStream方便和高效)dom
3.確保保存文件的路徑已經存在,或者在代碼裏面作出判斷和處理post
三、文件上傳大小限制測試
在啓動類中加入下面這個beanspa
@Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); //單個文件最大 factory.setMaxFileSize("10240KB"); //KB,MB /// 設置總上傳數據總大小 factory.setMaxRequestSize("1024000KB"); return factory.createMultipartConfig(); }
4.啓動項目測試3d