带有JSON正文和多部分文件数组的PUT请求

时间:2019-09-20 08:48:23

标签: java rest spring-boot postman

我有一个休息的Java Web服务,使用PUT方法来更新员工。

Web服务应获取文件列表和json包含要更新的信息。

该方法具有以下签名

@RequestMapping(value = "/employees/{employeeId}", method = RequestMethod.PUT, consumes = 
 MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<?> updateEmployee(
         @RequestPart EmployeeUserUpdateDto employeeDto,
         @PathVariable("employeeId") int employeeId,
         @RequestPart MultipartFile[] uploadedFiles, BindingResult bindingResult)

当我像下面这样用邮递员测试此请求时,它说我的json不存在:

enter image description here

PS:我有一个类似的添加员工的职位要求,在相同的配置下也可以正常工作,这两个要求之间唯一的区别是pathvariable和PUT not POST

2 个答案:

答案 0 :(得分:0)

添加方法:@ResponseBody

答案 1 :(得分:0)

您可以像这样在dto包装器中获得多部分请求:

@PutMapping("/upload-poc")
  ResponseEntity<?> uploadFileWithData(@ModelAttribute TestModel model){
    log.info("File Exist: {}",model.getImage().get(0).getOriginalFilename());
    log.info("Data: {}", model);
    return new ResponseEntity<>(HttpStatus.OK);
  }


@Getter
@Setter
@ToString
class TestModel{
  private List<MultipartFile> images;

  //@NotNull(message = "Name must be provided")
  @Size(min = 2, max = 6)
  private String name;

  private Long id;
}

我要在一个请求中上传3个文件。

这是邮递员要求的样品:

enter image description here