Java 带有ImageUpload端点的空文件

Java 带有ImageUpload端点的空文件,java,spring,spring-boot,rest,Java,Spring,Spring Boot,Rest,当我点击imageupload端点时,imageFile返回空值。我是否需要在某个地方设置一个集中式配置来解析它?imageMetadata很好地通过了 @PostMapping(value = "/images/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public String upload( @RequestPart(value = "imageFile", required = false) Mult

当我点击imageupload端点时,imageFile返回空值。我是否需要在某个地方设置一个集中式配置来解析它?imageMetadata很好地通过了

  @PostMapping(value = "/images/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String upload(
      @RequestPart(value = "imageFile", required = false) MultipartFile imageFile,
      @RequestPart(value = "imageMetadata", required = false) String imageMetadata
      ) {
    String imageFileIsNull = Boolean.toString(imageFile == null);
    return "Thanks for uploading your file! metadata:" + imageMetadata + " file is null: " + imageFileIsNull;
  }
附加照片时返回值(我尝试了jpg和png)


请尝试使用以下代码段

@PostMapping(value = "/images/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<ResponseMessage> upload(
      @RequestParam("file") MultipartFile imageFile
      ) {

    String imageFileIsNull = Boolean.toString(imageFile == null);
    String message = "Thanks for uploading your file! " + " file is null: " + imageFileIsNull;
    return ResponseEntity.status(HttpStatus.OK).body(new ResponseMessage(message));
  }
@PostMapping(value=“/images/upload”,consumes=MediaType.MULTIPART\u FORM\u DATA\u value)
公共响应上传(
@RequestParam(“文件”)多部分文件imageFile
) {
字符串imageFileIsNull=Boolean.toString(imageFile==null);
String message=“谢谢上传您的文件!”+“文件为空:”+imageFileIsNull;
返回ResponseEntity.status(HttpStatus.OK).body(新的ResponseMessage(message));
}

我删除了用于测试的图像元数据,以便您可以确保代码正常工作。

解决了这个问题。需要使用多部分/表单数据的部分

  @PostMapping(value = "/images/upload", consumes = { "multipart/form-data" } )
  public String upload(
      @RequestPart(value = "file", required = false) MultipartFile imageFile,
      @RequestPart(value = "imageMetadata", required = false) String imageMetadata
      ) {
    String imageFileIsNull = Boolean.toString(imageFile == null);
    String imageName = imageFile.getOriginalFilename();
    return "Thanks for uploading your file! metadata:" + imageMetadata + " file is null: " + imageFileIsNull + " file name: " + imageName;
  }
输出

Thanks for uploading your file! metadata:"hellooo" file is null: false file name: image_name.png

这是有效的-有没有一种方法可以将其发送到身体而不是参数中?为此,您可以检查这个。在参数中发送文件的。如果可以的话,我想把它分成两部分发送,因为它更安全一点。
Thanks for uploading your file! metadata:"hellooo" file is null: false file name: image_name.png