Как я могу загрузить и прочитать текстовый файл с весенним webflux? - PullRequest
0 голосов
/ 29 октября 2019

Мне нужно загрузить файл и прочитать содержимое, с Spring MVC это легко, но с Spring WebFlux я не знаю, как работать с FilePart и потоком DataBuffer

Я ожидаючто-то вроде этого возврата:

    @PostMapping("/upload")
    fun readFile(@RequestPart("file", required = true) file: Mono<FilePart>): Mono<ResponseEntity<String>> {
        return Mono.just("my text content")
                .map {
                    ResponseEntity.ok()
                            .body(it)
                }
    }

1 Ответ

0 голосов
/ 30 октября 2019

Я заставил это работать, используя следующий код:

    @PostMapping("/upload")
fun readFile(@RequestPart("file", required = true) file: Mono<FilePart>): Mono<ResponseEntity<String>> {

    return file.flatMap {
        it.content().map { dataBuffer ->
            IOUtils.inputStreamAsString(dataBuffer.asInputStream(), "UTF-8")
        }.toMono()
    }.map {
        ResponseEntity.ok()
                .body(it)
    }
}
...