首页 > 解决方案 > 如何在 Reactive Spring WEBFlux(Spring 5) 中读取上传的 json 文件内容

问题描述

我正在 Spring WEB Flux 应用程序中上传一个 json 文件,如下所示

public Mono<ServerResponse> uploadfile(ServerRequest request) { 

return request.body(BodyExtractors.toMultipartData()).flatMap(p -> {  
      FilePart filePart = (FilePart)p.toSingleValueMap().get("file");

      Flux<DataBuffer> dataBuffer1 = filePart.content();
      //Here i want to read the content of my uploaded json file 

});
return ServerResponse.ok().contentType(APPLICATION_JSON).body(Mono.just("SUCCESS"), String.class); 
}

你能帮助我如何在这里提取 json 文件内容吗?

标签: javaspringspring-bootmultipartspring-webflux

解决方案


@PostMapping("/uploadFile")
public Mono<String> uploadFile(@RequestPart("file") FilePart filePart) {
    Path tempFile = Files.createTempFile("test", filePart.filename());
    filePart.transferTo(tempFile);
    File file = ResourceUtils.getFile(tempFile.toUri());
    String content = new String(Files.readAllBytes(file.toPath()));
    return Mono.just(content);
  }

推荐阅读