WebFlux 上传文件异常
错误信息提示
DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
网上随便一搜
1 2 3
| spring: codec: max-in-memory-size: 20MB
|
重启项目
报错依旧…
换个解决方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @Configuration public class WebfluxConfig implements WebFluxConfigurer{
@Bean public WebClient getWebClientBuilder(){ return WebClient.builder().exchangeStrategies(ExchangeStrategies.builder() .codecs(configurer -> configurer .defaultCodecs() .maxInMemorySize(20 * 1024 * 1024)) .build()) .build(); } @Override public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) { configurer.defaultCodecs().maxInMemorySize(20 * 1024 * 1024); } }
|
重启
又报错…
懵逼
仔细研究了一下
发现不是默认的Filter出错而是自己的自定义 Filter出错了
1 2 3 4 5 6 7 8
| ServerRequest serverRequest = new DefaultServerRequest(exchange);
ServerRequest serverRequest = ServerRequest.create(exchange, codecConfigurer.getReaders());
@Autowired ServerCodecConfigurer codecConfigurer;
|
简单讲就是 我自己写的 RequestBodyFilter 用的 Codecs 不是 Spring 注入的
所以之前设置的都没有生效
以前没问题是因为 这个filter 我写了 上传文件的白名单 这次接口刚添加 忘记加白名单了