处理SpringMVC中的文件上传过程

 更新时间:2026年05月16日 10:46:48   作者:埃泽漫笔  
配置SpringMVC支持文件上传,在在配置文件中添加支持;创建包含文件上传字段的表单;在控制器中编写处理文件上传请求的方法,使用@RequestParam注解将上传的文件绑定到方法参数

配置 Spring MVC 以支持文件上传

首先,需要在 Spring 配置文件中添加对文件上传的支持。

你可以在 Spring 的 Java 配置类或 XML 配置文件中进行配置。

Java 配置类方式

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
@Configuration
public class AppConfig {
    @Bean
    public CommonsMultipartResolver multipartResolver() {
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
        multipartResolver.setMaxUploadSize(50000000); // 设置最大上传文件大小为 50MB
        return multipartResolver;
    }
}

XML 配置文件方式

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="50000000"/> <!-- 设置最大上传文件大小为 50MB -->
    </bean>
</beans>

创建一个表单用于文件上传

创建一个包含文件上传字段的 HTML 表单。

注意,表单的 enctype 属性必须设置为 multipart/form-data

<!DOCTYPE html>
<html>
<head>
    <title>File Upload</title>
</head>
<body>
    <form method="post" action="/upload" enctype="multipart/form-data">
        <input type="file" name="file" />
        <input type="submit" value="Upload" />
    </form>
</body>
</html>

编写控制器方法来处理文件上传请求

在控制器中编写处理文件上传请求的方法。

使用 @RequestParam 注解将上传的文件绑定到方法参数上。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
import java.io.IOException;
@Controller
public class FileUploadController {
    @PostMapping("/upload")
    @ResponseBody
    public String handleFileUpload(@RequestParam("file") MultipartFile file) {
        if (!file.isEmpty()) {
            try {
                // 获取文件名
                String fileName = file.getOriginalFilename();
                // 将文件保存到指定路径
                String filePath = "C:/uploads/" + fileName;
                File dest = new File(filePath);
                file.transferTo(dest);
                return "File uploaded successfully: " + fileName;
            } catch (IOException e) {
                e.printStackTrace();
                return "Failed to upload file: " + e.getMessage();
            }
        } else {
            return "Failed to upload file: File is empty.";
        }
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 创建SpringBoot项目的全过程

    创建SpringBoot项目的全过程

    文章介绍了如何在IDEA专业版中创建SpringBoot项目,并通过一个简单的示例展示了如何使用SpringBoot输出"hello,Springboot"
    2025-03-03
  • Java Object的wait和notify方法使用详解

    Java Object的wait和notify方法使用详解

    这篇文章主要介绍了Java Object的wait和notify方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • SpringBoot3整合MinIO实现分布式文件存储系统

    SpringBoot3整合MinIO实现分布式文件存储系统

    MinIO是一个高性能的分布式对象存储系统,兼容Amazon S3协议,广泛用于存储大量非结构化数据,SpringBoot3提供了与MinIO的良好集成,可以很方便地将MinIO用于分布式文件存储,在这篇文章中,我们将介绍如何在SpringBoot3中集成MinIO,搭建一个分布式文件存储系统
    2025-07-07
  • 企业级Kubernetes管理平台Wayne功能特性介绍

    企业级Kubernetes管理平台Wayne功能特性介绍

    这篇文章主要为大家介绍了企业级Kubernetes管理平台Wayne的功能特性及架构设计,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • SpringBoot ResponseBody返回值处理的实现

    SpringBoot ResponseBody返回值处理的实现

    这篇文章主要介绍了SpringBoot ResponseBody返回值处理的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • SpringBoot如何读取application.properties配置文件

    SpringBoot如何读取application.properties配置文件

    这篇文章主要介绍了SpringBoot如何读取application.properties配置文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • springboot环境下配置使用sqlite数据库方式

    springboot环境下配置使用sqlite数据库方式

    这篇文章主要介绍了springboot环境下配置使用sqlite数据库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 详解IDEA多module项目maven依赖的一些说明

    详解IDEA多module项目maven依赖的一些说明

    这篇文章主要介绍了详解IDEA多module项目maven依赖的一些说明,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • zookeeper+Springboot实现服务器动态上下线监听教程详解

    zookeeper+Springboot实现服务器动态上下线监听教程详解

    这篇文章主要介绍了zookeeper+Springboot实现服务器动态上下线监听,主要介绍了什么是服务器动态上下线监听及为什么要实现对服务器上下线的监听,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • SpringBoot整合Hutool实现文件上传的使用示例

    SpringBoot整合Hutool实现文件上传的使用示例

    文件上传在项目经常会用到,本文主要介绍了SpringBoot整合Hutool实现文件上传的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11

最新评论