首页 > 解决方案 > 通量文件部分验证和文件上传

问题描述

我正在使用通量上传文件。我正在尝试验证文件名,如果它包含任何特殊字符,那么应该向客户端抛出一条错误消息。如果验证通过,则上传文件。我尝试了以下代码,但验证块未执行并且文件上传成功。

public Flux<Response> upload(@RequestBody Flux<Part> parts) {
// validation
parts.filter(part -> part instanceof FilePart).ofType(FilePart.class).flatMap(filePart -> {
      // check file name contains special caharcetrs validation and throw invalid input exception if contains
      if(filePart.filename()..) {
            ....
      }
      return null;
});

// file uploading
return parts.filter(part -> part instanceof FilePart).ofType(FilePart.class).flatMap(filePart -> {
   // if validation passes, file upload and return result after success or failure (Mono<Response>).
});
}

但上面的验证块没有执行,但文件上传块正在执行并返回结果。如何结合这两种逻辑?首先我想做验证,如果发现返回相同的客户端,否则上传文件并返回结果。

标签: javaspring-bootspring-webfluxproject-reactor

解决方案


推荐阅读