1. 程式人生 > >springMVC3學習 十二 --檔案上傳優化CommonsMultipartResolver

springMVC3學習 十二 --檔案上傳優化CommonsMultipartResolver

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

基於上一篇檔案上傳發現效率很慢,我們應該對它進行優化  使用springMVC對檔案上傳的解析器

來處理檔案上傳的時候需要在spring的applicationContext裡面加上springMVC提供的MultipartResolver的申明

這樣客戶端請求的時候 springMVC會檢查request裡面是否包含多媒體資訊 如果包含了就會使用MultipartResolver進行解析,

springMVC會使用一個支援檔案  處理的MultipartHttpServletRequest來包裹當前的HttpServletRequest

然後使用MultipartHttpServletRequest就可以對檔案進行處理了


此處只改動FileController類 其他配置參考上一篇 http://blog.csdn.net/itmyhome1990/article/details/27976873

@Controllerpublic class FileController{  @RequestMapping("/fileUpload.do"public String fileUpload(HttpServletRequest request,HttpServletResponse response){  long startTime=System.currentTimeMillis();   //獲取開始時間    CommonsMultipartResolver multipartResolver = new
CommonsMultipartResolver(request.getSession().getServletContext());  if(multipartResolver.isMultipart(request)){ //判斷request是否有檔案上傳   MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;   Iterator<String> ite = multiRequest.getFileNames();   while(ite.hasNext()){    MultipartFile file = multiRequest.getFile(ite.next());    if(file!=null){     File localFile = new File("D:/"+file.getOriginalFilename());     try {      file.transferTo(localFile); //將上傳檔案寫到伺服器上指定的檔案     } catch (IllegalStateException e) {      e.printStackTrace();     } catch (IOException e) {      e.printStackTrace();     }    }   }  }  long endTime=System.currentTimeMillis(); //獲取結束時間  System.out.println("上傳檔案共使用時間:"+(endTime-startTime));    return "success"; }}

同樣上傳一個3.54M的PDF檔案 只使用了16毫秒(已自己計算機實際為準)

可見差別之懸殊。


專案原始碼下載:http://download.csdn.net/detail/itmyhome/7453821





           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述