gpt4 book ai didi

java - 处理 Spring Webflux MultipartFile.transferTo 中的错误

转载 作者:行者123 更新时间:2023-11-30 05:20:55 25 4
gpt4 key购买 nike

我正在使用 spring-webflux,我想知道是否有人知道如何处理 Mono<Void> 中的错误。我正在使用MultipartFile的方法transferTo ,成功后返回 Mono.empty()在其他情况下,它将异常包装在 Mono.error() 中。

public Mono<UploadedFile> create(final User user, final FilePart file) {
final UploadedFile uploadedFile = new UploadedFile(file.filename(), user.getId());
final Path path = Paths.get(fileUploadConfig.getPath(), uploadedFile.getId());

file.transferTo(path);

uploadedFile.setFilePath(path.toString());
return repo.save(uploadedFile);
}

我要保存UploadedFile仅以防万一 transferTo成功结束。但我不能使用map/flatMap,因为空的Mono显然不会发出值。 onErrorResume只接受Mono具有相同类型( Void )。

最佳答案

您好,尝试像这样链接您的运算符(operator):

    ...
return Mono.just(file)
.map(f -> f.transferTo(path))
.then(Mono.just(uploadedFile))
.flatMap(uF -> {
uF.setFilePath(path.toString());
return repo.save(uF)
});
}

如果您的transferTo成功完成,它会调用then运算符。

附注如果我没有弄错 FilePart 正在阻塞,请尽量避免它。

关于java - 处理 Spring Webflux MultipartFile.transferTo 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59580312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com