当前位置: 首页 > news >正文

SpringBoot实现文件上传

1. 配置文件上传限制

application.yml

spring:
  servlet:
    multipart:
      max-file-size: 10MB
      max-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 {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/images/**").addResourceLocations("file:D:/file/");
    }

}

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

相关文章:

  • 你为什么要写博客?
  • Linux系统编程--线程同步
  • WangEditor快速实现版
  • 在word下写公式
  • OneM2M:全球性的物联网标准-可应用于物联网中
  • [Kubernetes] 7控制平面组件
  • 排列组合定义及基本公式
  • C++11新特性 10.初始化列表、initializer_list
  • 嵌入式设备的功能安全和信息安全?
  • 数据结构——排序算法第一幕(插入排序:直接插入排序、希尔排序 选择排序:直接选择排序,堆排序)超详细!!!!
  • 物联网中如何增加其可扩展性 协议 网络 设备 还包括软件层面上的
  • 深度相机进行目标物体的空间姿态(位姿)估计
  • 《Linux命令行和shell脚本编程大全》第四章阅读笔记
  • RReadWriteLock读写锁应用场景
  • 第五次CCF-CSP认证(含C++源码)
  • 线性回归机器学习
  • 如何打开文件后缀名
  • 基于大模型的小脑扁桃体下疝畸形全流程预测与诊疗方案研究报告
  • 力扣热题 100:堆专题经典题解析
  • 建筑兔零基础自学记录42|cityengine2019导入sketchup/SU 2
  • wordpress文章标记/江苏seo网络
  • 网站做鸭/百度网址大全在哪里找
  • 让网站降权/论坛推广
  • ps模板网站/创建网站的流程
  • 微信网站后期运营怎么做/营销策划咨询机构
  • 外贸网站框架/站长之家app