摘自:https://www.cnblogs.com/896240130Master/p/6430908.html
https://blog.csdn.net/kouwoo/article/details/40507565
注意:單文件MultipartFile file
多文件(定義為數組形式)MultipartFile[] file
判斷文件是否為空:!file.isEmpty() -- 不為空
文件保存路徑 :String filePath = request.getSession().getServletContext().getRealPath("/")
+ "upload/" + file.getOriginalFilename();
上傳文件原名:file.getOriginalFilename();
轉存文件 :file.transferTo(new File(filePath));
步驟:1、創建一個控制類
2、編寫提交表單的action
3、使用SpringMVC注解RequestParam來指定表單中的file參數;
4、指定一個用於保存文件的web項目路徑
5、通過MultipartFile的transferTo(File dest)這個方法來轉存文件到指定的路徑。
MultipartResolver其中屬性詳解:
defaultEncoding="UTF-8" 是請求的編碼格式,默認為iso-8859-1
maxUploadSize="5400000" 是上傳文件的大小,單位為字節
uploadTempDir="fileUpload/temp" 為上傳文件的臨時路徑
1 <body> 2 <h2>文件上傳實例</h2> 3 4 5 <form action="fileUpload.html" method="post" enctype="multipart/form-data"> 6 選擇文件:<input type="file" name="file"> 7 <input type="submit" value="提交"> 8 </form> 9 10 11 </body>
注意要在form標簽中加上enctype="multipart/form-data"表示該表單是要處理文件的,input的type屬性的屬性值設為file,
標簽中屬性type的值為file,且name屬性的值為myFile,之所以需要name屬性值,是因為在使用接口MultipartHttpServletRequest的getFile方法時需要使用name屬性的值。例如在清單7-33中,代碼中的upload操作會從請求中讀取上傳文件。
讀取上傳文件
def upload = {
def file = request.getFile('myFile')
// 處理該文件
}
注意getFile方法不會返回一個java.io.File的實例,而是返回org.springframework.web. multipart.MultipartFile的一個實例,關於org.springframework.web.multipart.MultipartFile的詳細信息,請參考清單7-34。如果在請求中沒有找到文件則getFile方法返回null。
清單7-34 org.springframework.web.multipart.MultipartFile接口
1 interface MultipartFile { 2 3 public byte[] getBytes(); 4 5 public String getContentType(); 6 7 public java.io.InputStream getInputStream(); 8 9 public String getName(); 10 11 public String getOriginalFilename(); 12 13 public long getSize(); 14 15 public boolean isEmpty(); 16 17 public void transferTo(java.io.File dest); 18 19 }
1 @RequestMapping("fileUpload") 2 public String fileUpload(@RequestParam("file") MultipartFile file) { 3 // 判斷文件是否為空 4 if (!file.isEmpty()) { 5 try { 6 // 文件保存路徑 7 String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/" 8 + file.getOriginalFilename(); 9 // 轉存文件 10 file.transferTo(new File(filePath)); 11 } catch (Exception e) { 12 e.printStackTrace(); 13 } 14 } 15 // 重定向 16 return "redirect:/list.html"; 17 }
