我正在尝试使用 ajax 发布 BLOB 图像。但是弹簧控制器接收的是空值。
这是我的控制器。
@RequestMapping(value = "/uploadAvatar", method = RequestMethod.POST)
public @ResponseBody List<Long> uploadAvatar(byte[] avatar) {
// avatar is null here
// do some stuff
}
这是 ajax 部分。
var avatar = // some BLOB data
var fd = new FormData();
fd.append('fname', 'avatar.png');
fd.append('avatar', avatar);
$.ajax({
url: '/uploadAvatar',
type: 'POST',
data: fd,
cache: false,
processData: false,
contentType: false,
success: applySuggestions,
});
您需要MultipartFile来接收文件。
@RequestMapping(value = "/uploadAvatar", method = RequestMethod.POST)
public @ResponseBody List<Long> uploadAvatar(@RequestParam MultipartFile avatar) {
byte[] bytes = avatar.getBytes();
}