首页 > 编程 > Java > 正文

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

2019-11-26 08:31:46
字体:
来源:转载
供稿:网友

修改appliaction.properties

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

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

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

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

/** * 文件上传配置 * * @return */@Beanpublic 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();    }  }}

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表