溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

springboot上傳文件過(guò)大的500異常解決

發(fā)布時(shí)間:2020-08-31 16:53:16 來(lái)源:腳本之家 閱讀:277 作者:呵呵噠小碼農(nóng) 欄目:編程語(yǔ)言

修改appliaction.properties

# 單個(gè)文件最大20m
spring.servlet.multipart.max-file-size=20MB
#一次請(qǐng)求最大100M
spring.servlet.multipart.max-request-size=100MB

如果配置文件為appliaction.yml的這樣配置文件:

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

500代碼異常,在啟動(dòng)類的里追加

/**
 * 文件上傳配置
 *
 * @return
 */
@Bean
public MultipartConfigElement multipartConfigElement() {
/*
     springBoot 1.0+ 推薦這種寫法
      MultipartConfigFactory factory = new MultipartConfigFactory();
      //單個(gè)文件最大
      factory.setMaxFileSize("20480KB"); //KB,MB
      factory.setMaxFileSize("20480KB");
      /// 設(shè)置總上傳數(shù)據(jù)總大小
      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));
      /// 設(shè)置總上傳數(shù)據(jù)總大小10M
      factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
      return factory.createMultipartConfig();
}

這是我的啟動(dòng)類:

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();
      //單個(gè)文件最大
      factory.setMaxFileSize("20480KB"); //KB,MB
      factory.setMaxFileSize("20480KB");
      /// 設(shè)置總上傳數(shù)據(jù)總大小
      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));
      /// 設(shè)置總上傳數(shù)據(jù)總大小10M
      factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
      return factory.createMultipartConfig();
    }
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI