spring boot 上传文件大小控制

本文介绍了在Spring Boot项目中遇到文件上传大小限制问题的解决方案。通过在`application.properties`中设置`spring.servlet.multipart.maxFileSize`和`spring.servlet.multipart.maxRequestSize`来限制文件大小,防止上传过大文件导致服务报错。同时,提供了一个静态方法用于在上传前检查文件大小,确保符合设定值,以避免前端出现500错误,提升用户体验。
摘要由CSDN通过智能技术生成

最近再用spring boot 做项目时实现上传文件功能时遇到了文件超过一定大小就上传不了的问题 

百度了一下 各种解释最后找到一种有效的方法 所以记录下来方便自己 当然如果对看到本文的你有帮助我会很高兴

在application.properties中加入以下两个配置

spring.servlet.multipart.maxFileSize=31MB(这里是限制文件的大小)
spring.servlet.multipart.maxRequestSize=31MB(这里是限制文件的大小)

当然如果上传的文件超过了你设置的大小会服务会报错 

为避免前台出现报500错误的这种不友好画面最好在上传文件时判断一下文件大小若是超过设置上传文件大小可以直接返回一个error提示报文 这样比较友好

以下为判断文件大小的方法

/**
     * 判断文件大小
     * @param file
     * @param size
     * @param unit
     * @return
     */
    public static boolean checkFileSize(MultipartFile file,int size,String unit){
        long len = file.getSize();
        double fileSize=0;
        
        if("B".equals(unit.toUpperCase())){
            fileSize = (double) len;
        }els

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要限制Spring Boot应用程序中特定路径上传的文件大小,可以在应用程序的配置文件中添加以下配置: ``` spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 上述配置会将上传的文件大小限制为10MB。 然后,为了限制特定路径下的上传文件大小,需要在应用程序中创建一个`MultipartConfigElement` bean,并将其应用于指定路径的控制器或方法。 例如,假设我们要限制路径`/upload`下的上传文件大小,我们可以在应用程序中添加以下代码: ```java @Configuration public class WebConfig { @Bean MultipartConfigElement multipartConfigElement() { long maxFileSize = 10 * 1024 * 1024; // 10MB long maxRequestSize = 10 * 1024 * 1024; int fileSizeThreshold = 0; return new MultipartConfigElement("/tmp", maxFileSize, maxRequestSize, fileSizeThreshold); } @Bean public WebMvcConfigurer webMvcConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new HandlerInterceptor() { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (request.getRequestURI().startsWith("/upload")) { request.setAttribute("org.apache.tomcat.websocket.DISPATCHER", true); request.setAttribute("multipartConfigElement", multipartConfigElement()); } return true; } }); } }; } } ``` 上述代码创建了一个`MultipartConfigElement` bean,并在`preHandle`方法中将其应用于路径以`/upload`开头的请求。 请注意,上述代码使用了过时的`WebMvcConfigurerAdapter`类。如果你使用的是Spring Boot 2.0或更高版本,则应该使用`WebMvcConfigurer`接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值