SpringBoot实现文件上传

ops/2025/3/13 20:46:15/

1. 配置文件上传限制

application.yml

spring:servlet:multipart:max-file-size: 10MBmax-request-size: 10MB

2. 创建文件上传控制器

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.UUID;@RestController
public class FileController {//文件上传管理@PostMapping("/uploadFile")public String uploadFile(MultipartFile[] files){for(MultipartFile file:files){// 获取文件名以及后缀名String fileName = file.getOriginalFilename();// 重新生成文件名(根据具体情况生成对应文件名)fileName = UUID.randomUUID()+"_"+fileName;// 指定上传文件本地存储目录,不存在需要提前创建String dirPath = "D:/file/";File filePath = new File(dirPath);if(!filePath.exists()){filePath.mkdirs();}try {file.transferTo(new File(dirPath+fileName));return "上传成功";} catch (Exception e) {e.printStackTrace();}}return "上传失败";}}

3. 创建文件上传页面

src/main/resources/backend目录下创建upload.html文件

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>文件上传</title>
</head>
<body><form action="/uploadFile" method="post" enctype="multipart/form-data" ><input type="file" name="files"> <br> <br><input type="submit" value="提交" ></form>
</body>
</html>

这里backend目录事先有做了静态资源映射:自定义静态资源的映射

4. 运行测试

运行Spring Boot项目并访问http://127.0.0.1:8080/backend/upload.html。选择文件并点击“提交”按钮,文件将被上传到指定的目录(在这个例子中是D:/file/)。
在这里插入图片描述
查看上传目录
在这里插入图片描述

如果需要把上传文件(图片)能通过http请求显示出来,需要做静态资源映射(自定义静态资源的映射)。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");registry.addResourceHandler("/images/**").addResourceLocations("file:D:/file/");}}

配置完成后访问http://127.0.0.1:8080/images/目录下的指定图片(文件)。
在这里插入图片描述


http://www.ppmy.cn/ops/165510.html

相关文章

【spring】springAOP

1.基本概念 AOP即面向切面编程&#xff0c;它利用的是一种横切技术&#xff0c;解剖开封装的对象内部&#xff0c;并将那些影响多个类的公共行为封装到一个可重 用模块&#xff0c;这就是所谓的Aspect方面/切面。所谓的切面&#xff0c;简单点所说&#xff0c;就是将哪些与业务…

蓝桥杯省赛真题C++B组-裁纸刀2022

一、题目 问题描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝有一个裁纸刀&#xff0c;每次可以将一张纸沿一条直线裁成两半。 小蓝用一张纸打印出两行三列共 6 个二维码&#xff0c;至少使用九次裁出来&#x…

解锁数据结构分享图:高效知识传播的关键

解锁数据结构分享图&#xff1a;高效知识传播的关键 在信息如洪流般涌来的时代&#xff0c;数据结构作为计算机科学的核心基石&#xff0c;其复杂性与重要性不言而喻。而数据结构分享图&#xff0c;则宛如一把神奇的钥匙&#xff0c;能够高效地打开理解数据结构知识宝库的大门…

特征表示深度解析:颜色、纹理、形状与编码

第一部分&#xff1a;颜色与纹理特征&#xff08;Part 1&#xff09; 1. 颜色特征 颜色直方图&#xff08;Color Histogram&#xff09; 定义&#xff1a;统计图像中各颜色通道&#xff08;R/G/B&#xff09;的像素分布&#xff0c;形成直方图。 计算步骤&#xff1a; 将每个…

简单工厂 、工厂方法模式和抽象工厂模式

简单工厂 、工厂方法模式和抽象工厂模式 1.模式性质与定位 简单工厂:并非正式的设计模式(属编程习惯),通过单一工厂类根据参数判断创建不同产品,本质是将对象创建逻辑集中管理。 工厂方法:是标准的创建型设计模式,定义抽象创建接口,由子类决定实例化哪个具体产品类,…

多线程--参数传递之间的关系

在C中创建线程时&#xff0c;传递参数的方式会影响参数的生命周期、线程的安全性和性能。以下是几种常见的传递方式及其适用情况&#xff1a; 1. 值传递 值传递会创建参数的副本&#xff0c;并在线程函数内部使用该副本。这种方式可以避免线程之间的竞态条件&#xff0c;因为…

hive 中可能产生小文件的场景

在 Hive 中&#xff0c;小文件是指文件大小远小于 HDFS 块大小&#xff08;通常为 128 MB 或 256 MB&#xff09;的文件。小文件过多会导致 NameNode 内存压力增大、查询性能下降以及资源浪费。以下是 Hive 中可能产生小文件的常见场景&#xff1a; 1. 高频插入数据 场景描述 …

推理大模型时代,TextIn ParseX助力出版业知识资产重构

在大语言模型&#xff08;LLM&#xff09;与推理能力快速进化的技术浪潮下&#xff0c;出版机构沉淀数十年的非结构化数据资产&#xff0c;包括书籍、期刊、手稿及历史档案&#xff0c;正在焕发新的机遇。基于文档解析、NLP与大模型的推理生成能力&#xff0c;我们在图书馆层层…