java - 使用不同键的多个 Multipart 静态调用
问题描述
我正在尝试使用in调用POST
服务multipart form-data
@RequestPart
SpringBoot
下面是与多个工作正常的代码@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
)上传多个文件。
有什么建议吗?请帮忙。
解决方案
我有一个解决方案,请检查@ModelAttributeSpring-boot
请检查下面的示例
使用 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 并使用 MULTIPART_FORM_DATA_VALUE 使用您的 HTTP 发布 请求
@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);
}
}
你可以参考这个链接示例@ModelAttribute
with spring-boot
withangular
希望它对你有用
推荐阅读
- c++ - 有没有一种简单的方法可以从安装我的程序的通用自定义位置加载所有 c 运行时 dll(例如 vcruntime140.dll)?
- azure-sql-database - Azure 流分析“InputDeserializerError.InvalidData”错误
- webrtc - 我们可以为 STUN / TURN 服务器使用与 'stun'/'turn' 不同的子域吗?
- python - Pentaho:大数据获取和更新 - 输出性能
- ms-access - 有时不显示表单中表达式字段的内容
- swift - RNCryptor - 无法在 django 后端验证加密字符串
- javascript - Split string with regex skipping brackets []
- django - 在heroku上部署的django rest框架应用程序上的应用程序错误
- java - 无法进行导航抽屉活动
- java - 具有 MVVM 架构的 Android 应用程序,使用 MVVM 从 Service 写入本地 Room 数据库,Service 应该如何写入数据库?