我正在使用 Spring WebFlux 开发 API REST,但在上传文件时遇到问题。它们被存储,但我没有得到预期的返回值。
这就是我所做的:
我希望返回文件名,但客户端得到一个空字符串。
控制器代码
@PostMapping(value = "/muscles/{id}/image")
public Flux<String> updateImage(@PathVariable("id") String id, @RequestBody Flux<Part> file) {
log.info("REST request to update image to Muscle");
return storageService.saveFiles(file);
}
Run Code Online (Sandbox Code Playgroud)
存储服务
public Flux<String> saveFiles(Flux<Part> parts) {
log.info("StorageService.saveFiles({})", parts);
return
parts
.filter(p -> p instanceof FilePart)
.cast(FilePart.class)
.flatMap(file -> saveFile(file));
}
private Mono<String> saveFile(FilePart filePart) {
log.info("StorageService.saveFile({})", filePart);
String filename = DigestUtils.sha256Hex(filePart.filename() + new Date());
Path …Run Code Online (Sandbox Code Playgroud)