cuteaddanina

再看,再看,就把你吃掉

 

<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"时,其传输数据形式如下

image

<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)    收藏  举报

导航