我正在使用 @RequestParam 数组构建 Spring Boot 控制器。 问题是,输入将是请求正文中作为 FormData 的图像上传(新图像)和字符串(现有图像的 id)的混合。
如果是新图片,我必须上传图片并获取它的 id。 如果它是现有图像,我只需使用输入中的相同 id 即可。
在控制器中,我尝试使用
@RequestParam Object[] images
和
if (images[i] instanceof String) {
// Existing Image
} else if (images[i] instanceof MultipartFile) {
// New Image
}
如果所有项目都是图像或所有项目或字符串,则此方法有效。 但是,如果两者混合,则控制器仅捕获 MultipartFile
当我检查“网络”选项卡(浏览器)时,所有字符串和文件都已上传正常。
任何人都可以帮我捕获不同类型吗?
@RequestParam
用于处理简单的数据类型,可能无法处理您需要的复杂类型,例如您的情况下的图像和字符串。
您可以尝试使用 @RequestPart
代替 @RequestParam
。
@RequestPart("images") Object[] images
if (images[i] instanceof String) {
// Existing Image
} else if (images[i] instanceof MultipartFile) {
// New Image
}
这将允许您处理从客户端接收到的多种类型的数据。