@Transactional
@PostMapping(value = "/{entityTypeId}", headers = "Content-Type=multipart/form-data")
public void createFromFormPostMultiPart(
@PathVariable("entityTypeId") String entityTypeId,
MultipartHttpServletRequest request,
HttpServletResponse response) {
Map<String, Object> paramMap = new HashMap<>();
for (String param : request.getParameterMap().keySet()) {
String[] values = request.getParameterValues(param);
String value = values != null ? StringUtils.join(values, ',') : null;
if (StringUtils.isNotBlank(value)) {
paramMap.put(param, value);
}
}
for (Entry<String, List<MultipartFile>> entry : request.getMultiFileMap().entrySet()) {
String param = entry.getKey();
List<MultipartFile> files = entry.getValue();
if (files != null && files.size() > 1) {
throw new IllegalArgumentException("Multiple file input not supported");
}
paramMap.put(param, files != null && !files.isEmpty() ? files.get(0) : null);
}
createInternal(entityTypeId, paramMap, response);
}