springboot上传文件过大的500异常解决

 更新时间:2019年09月28日 10:37:03   作者:呵呵哒小码农  
这篇文章主要介绍了springboot上传文件过大的500异常解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

修改appliaction.properties

# 单个文件最大20m
spring.servlet.multipart.max-file-size=20MB
#一次请求最大100M
spring.servlet.multipart.max-request-size=100MB

如果配置文件为appliaction.yml的这样配置文件:

spring:
servlet:
multipart:
maxFileSize: 20MB
maxRequestSize: 100MB

500代码异常,在启动类的里追加

/**
 * 文件上传配置
 *
 * @return
 */
@Bean
public MultipartConfigElement multipartConfigElement() {
/*
     springBoot 1.0+ 推荐这种写法
      MultipartConfigFactory factory = new MultipartConfigFactory();
      //单个文件最大
      factory.setMaxFileSize("20480KB"); //KB,MB
      factory.setMaxFileSize("20480KB");
      /// 设置总上传数据总大小
      factory.setMaxRequestSize("102400KB");
      return factory.createMultipartConfig();

*/
      // springBoot 2.0+ 推荐这种写法,

      MultipartConfigFactory factory = new MultipartConfigFactory();
      //文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TB
      factory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES));
      /// 设置总上传数据总大小10M
      factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
      return factory.createMultipartConfig();
}

这是我的启动类:

package com.tythin.tyboot.rest;

import org.apache.coyote.http11.AbstractHttp11Protocol;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

import com.tythin.tyboot.core.config.WebAutoConfiguration;

import javax.servlet.MultipartConfigElement;

@SpringBootApplication(exclude = { WebAutoConfiguration.class })
@EnableScheduling
@MapperScan(basePackages = "XXXX")
public class TybootRestApplication {

  public static void main(String[] args) {
    SpringApplication.run(TybootRestApplication.class, args);
  }

  @Configuration
  public class CorsConfig {
    private CorsConfiguration buildConfig() {
      CorsConfiguration corsConfiguration = new CorsConfiguration();
      corsConfiguration.addAllowedOrigin("*"); // 1允许任何域名使用
      corsConfiguration.addAllowedHeader("*"); // 2允许任何头
      corsConfiguration.addAllowedMethod("*"); // 3允许任何方法(post、get等)
      return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
      UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
      source.registerCorsConfiguration("/**", buildConfig()); // 4
      return new CorsFilter(source);
    }

    /**
     * 文件上传配置
     *
     * @return
     */
    @Bean
    public MultipartConfigElement multipartConfigElement() {
/*
     springBoot 1.0+ 推荐这种写法
      MultipartConfigFactory factory = new MultipartConfigFactory();
      //单个文件最大
      factory.setMaxFileSize("20480KB"); //KB,MB
      factory.setMaxFileSize("20480KB");
      /// 设置总上传数据总大小
      factory.setMaxRequestSize("102400KB");
      return factory.createMultipartConfig();

*/
      // springBoot 2.0+ 推荐这种写法,

      MultipartConfigFactory factory = new MultipartConfigFactory();
      //文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TB
      factory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES));
      /// 设置总上传数据总大小10M
      factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
      return factory.createMultipartConfig();
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ShardingSphere jdbc实现分库分表核心概念详解

    ShardingSphere jdbc实现分库分表核心概念详解

    这篇文章主要为大家介绍了ShardingSphere jdbc实现分库分表核心概念详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • SpringBoot实现登录拦截器超详细教程分享

    SpringBoot实现登录拦截器超详细教程分享

    对于管理系统或其他需要用户登录的系统,登录验证都是必不可少的环节,尤其在 SpringBoot 开发的项目中。本文为大家准备了超详细的SpringBoot实现登录拦截器方法,快收藏一波吧
    2023-02-02
  • Java多线程编程之访问共享对象和数据的方法

    Java多线程编程之访问共享对象和数据的方法

    这篇文章主要介绍了Java多线程编程之访问共享对象和数据的方法,多个线程访问共享对象和数据的方式有两种情况,本文分别给出代码实例,需要的朋友可以参考下
    2015-05-05
  • Spring Boot @Async 异步任务执行方法

    Spring Boot @Async 异步任务执行方法

    本篇文章主要介绍了Spring Boot @Async 异步任务执行方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • springboot集成ftp实现文件上传

    springboot集成ftp实现文件上传

    这篇文章主要为大家详细介绍了springboot集成ftp实现文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • springcloud项目快速开始起始模板的实现

    springcloud项目快速开始起始模板的实现

    本文主要介绍了springcloud项目快速开始起始模板思路的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • springBoot2.6.2自动装配之注解源码解析

    springBoot2.6.2自动装配之注解源码解析

    对于springboot个人认为它就是整合了各种组件,然后提供对应的自动装配和启动器(starter),基于这个流程去实现一个定义的装配组件,下面这篇文章主要给大家介绍了关于springBoot2.6.2自动装配之注解源码解析的相关资料,需要的朋友可以参考下
    2022-01-01
  • SpringBoot+Spring Security无法实现跨域的解决方案

    SpringBoot+Spring Security无法实现跨域的解决方案

    这篇文章主要介绍了SpringBoot+Spring Security无法实现跨域的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 一文搞懂如何实现Java,Spring动态启停定时任务

    一文搞懂如何实现Java,Spring动态启停定时任务

    定时任务的应用场景十分广泛,如定时清理文件、定时生成报表、定时数据同步备份等。本文将教你实现Java、Spring动态启停定时任务,感兴趣的可以学习一下
    2022-06-06
  • Java动态代理实现_动力节点Java学院整理

    Java动态代理实现_动力节点Java学院整理

    动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程
    2017-08-08

最新评论