使用不同密钥的多个多部分休息呼叫
Multiple Multipart in rest call with different key
我正在尝试在 SpringBoot
中使用 @RequestPart
调用 POST
服务 multipart form-data
下面的代码可以很好地处理多个 @RequestPart
@PostMapping(value = "/saveDetails", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void saveDetails(@RequestPart("profileImage") MultipartFile profileImage,@RequestPart("addressImage") MultipartFile addressImage, @RequestPart("requestData") String requestData) {
try {
if(CommonUtils.isObjectNullOrEmpty(requestData) || CommonUtils.isObjectNullOrEmpty(profileImage) || CommonUtils.isObjectNullOrEmpty(addressImage)){
logger.warn("Data Should not be null ==>");
}
detailSaveService.saveOrUpdateDetails(profileImage, addressImage,requestData);
} catch (Exception e) {
logger.error("Error while saving profile Details ==>", e);
}
}
我需要改进我的代码 @RequestPart
需要是上传的单个参数
具有不同密钥的多个文件(profileImage
和 addressImage
)。
有什么建议吗?请帮忙。
我有一个解决方案,请查看 @ModelAttribute 中的 Spring-boot
请查看以下示例
创建 class 并使用 getter setter 为所有不同的关键参数添加数据成员,请参考下面的示例
class FileUploadRequest {
private MultipartFile profileImage;
private MultipartFile addressImage;
private MultipartFile[] images; // you can use list or array
private String requestData; // you can use another pojo or Jsonobject
// add getter setter here...
}
在您的休息控制器中使用@ModelAttribute,使用您的 HTTP post 请求 MULTIPART_FORM_DATA_VALUE
@PostMapping(value = "/saveDetails", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void saveDetails(@ModelAttribute FileUploadRequest uploadRequest) {
try {
if(CommonUtils.isObjectNullOrEmpty(uploadRequest.getRequestData()) || CommonUtils.isObjectNullOrEmpty(uploadRequest.getProfileImage()) || CommonUtils.isObjectNullOrEmpty(uploadRequest.getAddressImage())){
logger.warn("Data Should not be null ==>");
} else {
detailSaveService.saveOrUpdateDetails(uploadRequest.getProfileImage()), uploadRequest.getAddressImage()),uploadRequest.getRequestData()));
}
} catch (Exception e) {
logger.error("Error while saving profile Details ==>", e);
}
}
你可以参考这个link例子 @ModelAttribute
with spring-boot
with angular
希望对你有用
我正在尝试在 SpringBoot
@RequestPart
调用 POST
服务 multipart form-data
下面的代码可以很好地处理多个 @RequestPart
@PostMapping(value = "/saveDetails", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void saveDetails(@RequestPart("profileImage") MultipartFile profileImage,@RequestPart("addressImage") MultipartFile addressImage, @RequestPart("requestData") String requestData) {
try {
if(CommonUtils.isObjectNullOrEmpty(requestData) || CommonUtils.isObjectNullOrEmpty(profileImage) || CommonUtils.isObjectNullOrEmpty(addressImage)){
logger.warn("Data Should not be null ==>");
}
detailSaveService.saveOrUpdateDetails(profileImage, addressImage,requestData);
} catch (Exception e) {
logger.error("Error while saving profile Details ==>", e);
}
}
我需要改进我的代码 @RequestPart
需要是上传的单个参数
具有不同密钥的多个文件(profileImage
和 addressImage
)。
有什么建议吗?请帮忙。
我有一个解决方案,请查看 @ModelAttribute 中的 Spring-boot
请查看以下示例
创建 class 并使用 getter setter 为所有不同的关键参数添加数据成员,请参考下面的示例
class FileUploadRequest {
private MultipartFile profileImage;
private MultipartFile addressImage;
private MultipartFile[] images; // you can use list or array
private String requestData; // you can use another pojo or Jsonobject
// add getter setter here...
}
在您的休息控制器中使用@ModelAttribute,使用您的 HTTP post 请求 MULTIPART_FORM_DATA_VALUE
@PostMapping(value = "/saveDetails", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void saveDetails(@ModelAttribute FileUploadRequest uploadRequest) {
try {
if(CommonUtils.isObjectNullOrEmpty(uploadRequest.getRequestData()) || CommonUtils.isObjectNullOrEmpty(uploadRequest.getProfileImage()) || CommonUtils.isObjectNullOrEmpty(uploadRequest.getAddressImage())){
logger.warn("Data Should not be null ==>");
} else {
detailSaveService.saveOrUpdateDetails(uploadRequest.getProfileImage()), uploadRequest.getAddressImage()),uploadRequest.getRequestData()));
}
} catch (Exception e) {
logger.error("Error while saving profile Details ==>", e);
}
}
你可以参考这个link例子 @ModelAttribute
with spring-boot
with angular
希望对你有用