#spring-webflux #webflux
Вопрос:
При загрузке текстового файла с 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 ...;
}
Проблема, похоже, возникает в строке декодирования, я вижу нулевое значение, возвращаемое из декодирования после достижения нескольких строк из файла.
Есть ли лучший способ прочитать составные файлы данных, созданные в любой операционной системе, и сохранить их в базе данных.
Приношу извинения, если это окажется небольшой ошибкой с моей стороны!