在Web系統開發過程中,文件上傳是普遍的功能,本文主要以一個簡單的小例子,講解SpringMVC中文件上傳的使用方法,僅供學習分享使用,如有不足之處,還請指正。 ...
概述
在Web系統開發過程中,文件上傳是普遍的功能,本文主要以一個簡單的小例子,講解SpringMVC中文件上傳的使用方法,僅供學習分享使用,如有不足之處,還請指正。
文件上傳依賴包
如下所示,文件上傳依賴的jar包主要有兩個:
commons-fileupload-1.4.jar commons-io-2.6.jar
SpringMVC支持文件上傳操作步驟
1. 配置支持文件上傳的Bean
如下所示:主要配置預設的編碼方式,和上傳文件的限制大小
1 <!-- 文件上傳支持 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <property name="defaultEncoding" value="UTF-8"></property> 4 <!-- 設置最大上傳內容,單位是byte --> 5 <property name="maxUploadSize" value="1024000"></property> 6 </bean>
2. 在處理方法中,以MultipartFile 進行接收
如下所示:MultipartFile表示一個存儲在記憶體中或者磁碟臨時文件類型的文件內容。可以獲取對應的輸入流(InputStream),然後獲取輸入流中的位元組數組內容。
1 /** 2 * 顯示upload頁面,GET訪問 3 * @return 4 */ 5 @RequestMapping(value="upload",method=RequestMethod.GET) 6 public ModelAndView upload(){ 7 System.out.println("upload被調用了"); 8 ModelAndView mav=new ModelAndView("upload"); 9 return mav; 10 } 11 12 /** 13 * 用於上傳文件 14 * @return 15 * @throws IOException 16 */ 17 @RequestMapping(value="upload",method=RequestMethod.POST) 18 public ModelAndView upload(String desc,@RequestParam("file") MultipartFile file) throws IOException{ 19 System.out.println("upload被調用了2"); 20 String fileName=file.getOriginalFilename(); 21 System.out.println("上傳的源文件名:"+fileName); 22 System.out.println("文件描述:"+desc); 23 InputStream input= file.getInputStream(); 24 OutputStream output=new FileOutputStream("D:\\upload\\"+fileName); 25 byte[] bs=new byte[1024]; 26 int len=-1; 27 while((len=input.read(bs))!=-1){ 28 output.write(bs,0,len); 29 } 30 output.close(); 31 input.close(); 32 ModelAndView mav=new ModelAndView("success"); 33 return mav; 34 } 35
3. 前端(Jsp)頁面中
如下所示:method="post" enctype="multipart/form-data"是關鍵
1 <form action="upload" method="post" enctype="multipart/form-data"> 2 文件:<input type="file" name="file"> <br /> 3 描述:<input type="text" name="desc" /> <br /> 4 <input type="submit" value="上傳"> 5 </form>
4. 運行進行測試
如下所示,輸出日誌如下:
upload被調用了 upload被調用了2 上傳的源文件名:readme.txt 文件描述:1235 upload被調用了
備註
我們,已不再年輕,父母已老去,孩子已長大,吃不完的苦,扛不完的責任。活要自己拼命乾,錢要自己辛苦賺。
我們,已不再年輕,該吃就吃,該睡就睡,該笑就笑,該休息就休息。