zoukankan      html  css  js  c++  java
  • 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp      

    1. 摘要


    Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的。Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。
    下面将具体讲解Spring MVC实现文件上传的具体步骤。

    2. 添加Jar包


    Spring MVC文件上传,需要添加如下两个jar包:
    1. commons-fileupload-1.2.2.jar;
    2. commons-io-2.0.1.jar

    3. 配置CommonsMultipartResolver



    1. <!-- 文件上传 -->
    2. <bean id="multipartResolver"
    3. class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
    4. p:defaultEncoding="UTF-8" p:maxUploadSize="5000000" p:uploadTempDir="upload/temp" />

    说明:
    • p:defaultEncoding="UTF-8":这里设置默认的文件编码为UTF-8,必须与用户JSP的默认编码一致;
    • p:maxUploadSize="5000000":指定文件上传大小,单位为字节;
    • p:uploadTempDir="upload/temp":文件上传临时目录,上传完成后,就会将临时文件删除;

    4. 控制层代码


    前台请求:http://localhost:8080/SpringMVCTest/test/uploadPage.action 时,返回uploadPage.jsp界面,如下:



    1. @RequestMapping(value = "/upload")
    2. public String updateThumb(@RequestParam("name") String name,
    3. @RequestParam("file") MultipartFile file,
    4. HttpServletRequest request, ModelMap model) throws Exception {
    5. if (!file.isEmpty()) {
    6. // 保存文件-方式1 --测试过,可以用,必须先创建相应目录
    7. // file.transferTo(new File("d:/"+file.getOriginalFilename()));
    8. // 保存文件-方式2
    9. String path = request.getSession().getServletContext()
    10. .getRealPath("upload");
    11. String fileName = file.getOriginalFilename();
    12. File targetFile = new File(path, fileName);
    13. //目录不存在,则创建目录
    14. if(!targetFile.exists()){
    15. targetFile.mkdirs();
    16. }
    17. //保存
    18. try {
    19. file.transferTo(targetFile);
    20. } catch (Exception e) {
    21. e.printStackTrace();
    22. }
    23. model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);
    24. return "success";
    25. } else {
    26. return "fail";
    27. }
    28. }


    5. 文件上传JSP



    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    4. <html>
    5. <head>
    6. <title>请上传用户头像</title>
    7. </head>
    8. <body>
    9. <h1>请选择上传的头像文件</h1>
    10. <form method="post" action="<c:url value="/test/upload.action"/>"
    11. enctype="multipart/form-data">
    12. <input type="text" name="name" />
    13. <input type="file" name="file" />
    14. <input type="submit" />
    15. </form>
    16. </body>
    17. </html>

    成功返回的界面:









    附件列表

    • 相关阅读:
      ListView 操作
      Delphi 浏览器WebBrowser
      XE6 c++builder Edit垂直居中
      HTML 表格标签
      HTML 标签说明
      Ubuntu下如何解压缩zip,tar,tar.gz,tar.bz2文件
      Ubuntu 12.04下mysql的安装与配置
      Ubuntu12.04下apache服务器的安装也配置
      Ubuntu12.04下tomcat的安装与配置
      Ubuntu 12.04下jdk的安装与配置
    • 原文地址:https://www.cnblogs.com/ssslinppp/p/4607043.html
    Copyright © 2011-2022 走看看