我有一个休息的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不存在:
PS:我有一个类似的添加员工的职位要求,在相同的配置下也可以正常工作,这两个要求之间唯一的区别是pathvariable和PUT not POST
答案 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个文件。
这是邮递员要求的样品: