У меня есть такой контроллер:
@RequestMapping(value = "/user/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public UserLesserDTO createUser(@RequestParam("profileImageFile") MultipartFile file, @RequestBody UserDTO user, @PathVariable("method") String method) {
// Save profileImage as a profile image and store the image file name in user's profileImage attribute.
// save user.
}
, и у меня есть HTML-форма со всеми атрибутами пользователя как <input type="text" name="user attribute name">
плюс один <input type="file" name="profileImageFile">
Я получил ошибку415 вроде: The origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource.
, но когда я удаляю @RequestBody UserDTO user
из подписи моего createUser()
метода, часть файла загрузки начинает работать, и я могу получить файл.
Уже прочитано this и this для установки связывателя данных.
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
binder.setDisallowedFields("user.profileImage");
binder.setAllowedFields("profileImageFile");
}
Но это ничего не меняет.