MultipartFile(文件的上傳)


摘自: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>  
View Code

注意要在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 }
View Code

 

 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     }  
View Code

 

         


免責聲明!

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



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