SpringMVC处理上传文件

Spring MVC处理文件上传
Spring MVC为文件上传提供了直接支持,这种支持是通过即插即用的MultipartResolver实现. Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。

在SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要先在上下文中配置MultipartResolver。

  1. 引入jar包!
1
2
3
commons-fileupload.jar
 
commons-io.jar

  

maven项目pom.xml

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>
     
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    配置MultipartResolver

      


    配置
1
2
3
4
5
6
7
<!--multipartResolver配置 id必须为multipartResolver-->
<bean id="multipartResolver"
      class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
      p:defaultEncoding="UTF-8"
      p:maxUploadSize="5242880"
      p:uploadTempDir="file:/d:/file/temp"
/>

  

  1. 编写控制器和文件上传表单
    编写文件上传表单 upload.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
  <center>
      <form method="post" enctype="multipart/form-data" action="user/upload">
           上传图片:
            <input type="file" name="file" />
            <button>提交</button>
      </form>
  </center>
</body>
</html>

  

编写控制器代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1. @RequestMapping("/toUpload"public String toUpload(){
       //跳转到上传页面
       return  "user/upload";  }
    
    @RequestMapping("/upload"public  String
   saveFile(@RequestParam("file")MultipartFile file) throws IOException
   {
       //接收表单提交的数据,包含文件
       System.out.println("name = " + name);  
         
        // baseurl=D:\workspace_idea1\TestSSM\target\TestSSM\upload\
          String basePath=request.getSession().getServletContext().getRealPath("/upload/");
    
    
           System.out.println(basePath);
    
           try {
               file.transferTo(new File(basePath+file.getOriginalFilename()));
           } catch (IOException e) {
               e.printStackTrace();
           }
            return "success";  }

  

 
posted @   呆萌老师  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示