文件上传+拦截器——Spring Boot后端学习(二)

该文介绍了在SpringBoot2.6.1环境中,如何配置静态资源路径、处理文件上传,包括最大文件限制,并讲解了MultipartFile接口的使用。同时,文章详细阐述了拦截器的概念,如何创建自定义拦截器LoginInterceptor并进行注册,以及拦截器在权限检查和性能监控中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行环境

jdk 1.8
spring boot 2.6.1
maven 3.9.1
编译器 idea
参照1天搞定SpringBoot+Vue全栈开发的学习笔记

静态资源访问

默认路径:classpath:/static/目录

以下在application.properties中修改

spring.mvc.static-path-pattern=/images/**
可以添加虚拟路径

spring.web.resources.static-locations=classpath:/static
添加新的静态资源路径

文件上传原理

注意一个小坑
修改表单enctype="multipart/from-data"
后端参数名称一定要与表单一致

默认配置:单个文件大小不超过1M,文件总数不超过10MB
以下在application.properties中修改默认文件大小

spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB
修改后默认的单个文件不超过10MB

spring.web.resources.static-locations=/upload/
添加新的静态资源路径,使用户上传的文件可以通过静态目录访问

MultipartFile f

用于获取文件f的各项信息

拦截器

权限检查 | 性能监控 | 通用行为

通用行为:
读取cookie得到用户信息并将用户对象放入请求
提取Locale、Theme信息等

HandlerInterceptor接口定义了preHandlepostHandleafterCompletion三种方法,通过重写这三种方法实现请求前、请求后等操作

拦截器定义

//定义
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler){
        //request 前端请求  response 给前端返回对应信息
        System.out.println("LoginInterceptor");
        return true;
    }
}

拦截器注册

要使拦截器定义生效,需要在interceptor包中增加一个WebConfig类,添加@Configuration标记使服务器自动读取配置

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/user/**");
    }
}

重写这个addInterceptors增加拦截器的方法,使其new刚刚新建的LoginInterceptor

addPathPatterns("/user/**"):拦截的路径,拦截/user/路径下的全部文件,若没有填写,拦截主目录下所有文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值