Spring基础篇:文件的上传

简介: 文件的上传
关于文件的上传,Spring提供了方便的操作方式,再次回顾一下吧。

依赖

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>

在配置类中配置 上传处理器

也就是要在IOC容器中加 做上传处理器的类org.springframework.web.multipart.commons.CommonsMultipartResolver
这里使用注解的方式。

但是有个注意点:

  • id必须为multipartResolver
@Bean("multipartResolver")
public CommonsMultipartResolver getCommonsMultipartResolver() {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
        // 限制上传文件的大小,单位是B
        commonsMultipartResolver.setMaxUploadSize(2097152);
        return commonsMultipartResolver;
}

setMaxUploadSize:用来限制上传文件的大小,单位是B

SpringMVC整合时,通常会有两个配置类(一种规范)。一个配置类是根配置类,负责除了控制器和视图外所有的Bean;另外一个是MVC配置类,负责MVC相关的所有Bean及配置。 这个文件上传作为一个普通的Bean,我认为是应该放在根配置类,为MVC服务。

前端请求头

multipart/form-data

含有文件及图片上传,请将表单或者请求头中加上这个请求头。

Controller方法

在Controller的方法参数中,我们使用MultipartFile这个类的对象来接收上传的文件。

@PostMapping("/upload")
public void upload(MultipartFile multipartFile) {
    System.out.println(multipartFile); // 打印一下
}

拿到这个multipartFile就能做很多事啦,通常有两个操作:

  1. 将文件直接保存到数据库中(图片)。(数据库操作)
  2. 将文件保存至本地。(I/O流操作)

上面两个操作先略过,后面单独说,这里先再了解一下multipartFile还能做什么。

// 获取原始文件名
String originalFilename = multipartFile.getOriginalFilename();
// 获取文件扩展名
String ext = originalFilename.substring(originalFilename.lastIndexOf("."));

这个操作当然是保存文件到本地时会用到的了。

PostMan测试

  1. 还是请求头,记得!

image.png

  1. body中,选择form-data,将key选为file,这样就能上传文件了。

image.png

常见问题

注意发送的参数名字和接收的形参的名字是否一样

image.png

不一样时可能出现错误,这时候可以使用@RequestParam;或者两个名字一样就行咯。

目录
相关文章
|
6月前
|
存储 Java 数据安全/隐私保护
|
6月前
|
设计模式 前端开发 Java
了解 Spring MVC 架构、Dispatcher Servlet 和 JSP 文件的关键作用
Spring MVC 是 Spring 框架的一部分,是一个 Web 应用程序框架。它旨在使用 Model-View-Controller(MVC) 设计模式轻松构建Web应用程序。
101 0
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
15 2
|
3月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
1月前
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
262 11
|
1月前
|
Java Maven Spring
用Spring导致的无法运行Java文件的问题的解决方案
本文提供了解决在IntelliJ IDEA社区版中使用Spring Initializr插件创建Spring项目后,Java文件无法运行的问题的方法,主要是通过加载Maven项目来解决。
69 0
|
3月前
|
存储 Java Spring
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
【Azure Spring Cloud】Azure Spring Cloud服务,如何获取应用程序日志文件呢?
|
3月前
|
Java Linux C++
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑
|
5月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
63 2
|
5月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
54 1