<4>SpringBoot文件上传+拦截器
(示例项目:demo。项目路径:C:\somethingfromeF\25SummerVacation\demo)
一、SpringBoot文件上传
<1>静态资源访问
1.使用IDEA创建Spring Boot项目,会默认创建出classpath:/static/目录,静态
资源一般放在这个目录下即可。
2.如果默认的静态资源过滤策略不能满足开发需求,也可以自定义静态资源过滤
策略。
3. 在application.properties中直接定义过滤规则和静态资源位置:
a.情况是:resouses下面的static里面的文件位置:
spring.mvc.static-path-pattern=/static/**
b.情况是:resouses下面的自己设立的里面的文件位置:
pring.web.resources.static-locations=classpath:/static
4.过滤规则为/static/**,静态资源位置为classpath:/static/
<2>文件上传原理
1.表单的enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
n2.当表单的enctype="application/x-www-form-urlencoded"(默认)时,
form表单中的数据格式为:key=value&key=value
3.当表单的enctype="multipart/form-data"时,其传输数据形式如下

<3>SpringBoot实现文件上传功能
1.Spring Boot工程嵌入的tomcat限制了请求的文件大小,每个文件的配置最大
为1Mb,单次请求的文件的总数不能大于10Mb。
2.要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
<4>每次变化的文件路径
<5>附录
package com.example.demo.controller;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@RestController
public class FileUploadController {
    @PostMapping("/upload")
    public String up(String nickname, MultipartFile phone, HttpServletRequest request) throws IOException{
        System.out.println(nickname);
        System.out.println(phone.getOriginalFilename());
        System.out.println(phone.getContentType());
        String path =request.getServletContext().getRealPath("upload");
        System.out.println(path);
        saveFile(phone,path);
        return "上传成功";
    }
        public void saveFile(MultipartFile photo, String path) throws IOException {
            // 判断存储的目录是否存在,如果不存在则创建
            File dir = new File(path);
            if (!dir.exists()) {
                // 创建目录
                dir.mkdir();
            }
            File file = new File(path + photo.getOriginalFilename());
            photo.transferTo(file);
        }
}
二、拦截器
<1>使用
1.1创建包:interceptor(拦截器)
1.2interceptor包下面创建文件如:LoginInterceptor.java
2.1创建包:config(配置)
2.2config包下面创建文件如:WebConfig.java
3.这样才能使用
posted on 2025-08-09 19:08 Adda...nina 阅读(20) 评论(0) 收藏 举报
                    
                
                
            
        
浙公网安备 33010602011771号