从 Mac 上传文本文件时,数据正在按预期处理。当从 Windows 代码创建并上传相同的文件时,会出现 Indexoutofbound 异常。
我的休息路由器类:
@Configuration
public class RestRouter {
@Bean
public RouterFunction<ServerResponse> abc(final Handler handler) {
return RouterFunctions.route(RequestPredicates.POST("/fileUpload").and(RequestPredicates.all()), handler::uploadFile);
}
}
我的处理程序类:
public class Handler {
public Mono<ServerResponse> uploadFile(final ServerRequest request){
Flux<DataBuffer> chunk = request.body(BodyExtractors.toMultipartData()).flatMapMany(filedata -> filedata.toSingleValueMap().get("data").content());
Flux<String> stringFlux = StringDecoder.allMimeTypes(StringDecoder.DEFAULT_DELIMITERS,true).
decode(chunk, ResolvableType.forClass(String.class),null,null).doOnEach( l -> log.info("Decoded {}",l));
...
...
//DB insertions
return ...;
}
问题似乎发生在解码行上,我看到从文件中到达几行后从解码返回空值。
有没有更好的方法来读取在任何操作系统上创建的多部分数据文件并存储到数据库中。
如果是我这边的一个小错误,请道歉!