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();
    }
  }
}

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

相关文章

  • java面试题——详解HashMap和Hashtable 的区别

    java面试题——详解HashMap和Hashtable 的区别

    本篇文章主要介绍了java中HashMap和Hashtable的区别,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • Java多线程编程之ThreadLocal详解

    Java多线程编程之ThreadLocal详解

    这篇文章主要介绍了Java多线程编程之ThreadLocal详解,ThreadLocal是Java中的一个线程局部变量,该变量在多线程并发执行时,为每个线程都提供了一个独立的副本,简单来说,ThreadLocal提供了一种在多线程环境中,使每个线程绑定自己独立的变量的方法,需要的朋友可以参考下
    2023-09-09
  • java基础详解之数据类型知识点总结

    java基础详解之数据类型知识点总结

    这篇文章主要介绍了java基础详解之数据类型知识点总结,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很大的帮助,需要的朋友可以参考下
    2021-04-04
  • java md5工具类分享

    java md5工具类分享

    这篇文章主要介绍了java的md5工具类,需要的朋友可以参考下
    2014-02-02
  • spring boot 日志配置详解

    spring boot 日志配置详解

    本篇文章主要介绍了spring boot 日志配置 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • SpringBoot整合Swagger页面禁止访问swagger-ui.html方式

    SpringBoot整合Swagger页面禁止访问swagger-ui.html方式

    本文介绍了如何在SpringBoot项目中通过配置SpringSecurity和创建拦截器来禁止访问SwaggerUI页面,此外,还提供了禁用SwaggerUI和Swagger资源的配置方法,以确保这些端点和页面对外部用户不可见或无法访问
    2025-02-02
  • Java实现QQ第三方登录的示例代码

    Java实现QQ第三方登录的示例代码

    这篇文章主要介绍了Java实现QQ第三方登录的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 简单了解java局部变量与成员变量的区别

    简单了解java局部变量与成员变量的区别

    这篇文章主要介绍了简单了解java局部变量与成员变量的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Flowable流程引擎API与服务

    Flowable流程引擎API与服务

    这篇文章主要介绍了Flowable流程引擎API与服务,引擎API是与Flowable交互的最常用手段,总入口点是ProcessEngine,使用ProcessEngine,可以获得各种提供工作流或BPM方法的服务,下面我们来详细了解
    2023-10-10
  • SpringMVC 限流的示例代码

    SpringMVC 限流的示例代码

    这篇文章主要介绍了SpringMVC 限流的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12

最新评论