【Spring學習筆記-MVC-13.2】Spring MVC之多文件上傳


作者:ssslinppp      

1. 摘要


前篇文章講解了單文件上傳《【Spring學習筆記-MVC-13】Spring MVC之文件上傳》 http://www.cnblogs.com/ssslinppp/p/4607043.html (請參考)。本文主要講多文件上傳的過程。
主要區別在於控制層代碼不同,同時,jsp代碼也有相應修改。

2. 添加jar包


  1. commons-fileupload-1.2.2.jar;
  2. commons-io-2.0.1.jar;

3. 配置CommonsMultipartResolver




說明:
  • p:defaultEncoding="UTF-8":這里設置默認的文件編碼為UTF-8,必須與用戶JSP的默認編碼一致;
  • p:maxUploadSize="5000000":指定文件上傳大小,單位為字節;
  • p:uploadTempDir="upload/temp":文件上傳臨時目錄,上傳完成后,就會將臨時文件刪除;

4.控制層代碼



   
   
   
           
  1. @RequestMapping(value = "/upload")
  2. public String updateThumb(HttpServletRequest request,
  3. HttpServletResponse response, ModelMap mmMap)
  4. throws IllegalStateException, IOException {
  5. // 創建一個通用的多部分解析器
  6. CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
  7. request.getSession().getServletContext());
  8. //判斷 request 是否有文件上傳,即多部分請求
  9. if(multipartResolver.isMultipart(request)){
  10. //轉換成多部分request
  11. MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
  12. //取得request中的所有文件名
  13. Iterator<String> iter = multiRequest.getFileNames();
  14. while(iter.hasNext()){
  15. //取得上傳文件
  16. MultipartFile file = multiRequest.getFile(iter.next());
  17. //對上傳文件進行處理
  18. if(!file.isEmpty()){
  19. String path = request.getSession().getServletContext()
  20. .getRealPath("upload");
  21. String fileName = file.getOriginalFilename();
  22. File targetFile = new File(path, fileName);
  23. if(!targetFile.exists()){
  24. targetFile.mkdirs();
  25. }
  26. //保存
  27. try {
  28. file.transferTo(targetFile);
  29. System.out.println("保存文件【"+file.getOriginalFilename()+"】完成...");
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. }
  35. }
  36. return "success";
  37. }



5. 前台JSP




6. 上傳結果





其他









附件列表

     


    免責聲明!

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



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