Java 将MultiPartFile作为JSON请求属性发送到Spring引导REST控制器
我有一个JSON请求,如下所示,我想将我的文件I-e(pdf、jpeg、png等)作为JSON请求体的一部分,如下所示。 我将如何在SpringBootRESTAPI中做到这一点。? 我的请求机构是:Java 将MultiPartFile作为JSON请求属性发送到Spring引导REST控制器,java,json,spring,spring-boot,Java,Json,Spring,Spring Boot,我有一个JSON请求,如下所示,我想将我的文件I-e(pdf、jpeg、png等)作为JSON请求体的一部分,如下所示。 我将如何在SpringBootRESTAPI中做到这一点。? 我的请求机构是: { "data":{ "caseCategoryPrefix":"PF", "caseNumber":"last name", "case
{
"data":{
"caseCategoryPrefix":"PF",
"caseNumber":"last name",
"caseStatusId":1,
"caseCategoryId":1,
"caseAttachments":[
{
"caseAttachmentId":1,
"attachmentTypeId":1,
"createdBy":"abc",
"file":"" // here i want to attach my file
}
]
}
}
就我现在而言,上传文件的正常做法是先上传它,返回ID,然后保存数据对象 例1: 在控制器中有两个端点。一个用于文件上传,另一个用于数据对象保存此方法最适用于较大的文件。
@PostMapping(
value=“/file”,
products=MediaType.APPLICATION\u JSON\u值,
消费=MediaType.MULTIPART\u FORM\u DATA\u VALUE
)
公共字符串上载文件(@RequestPart MultipartFile){
//上传文件并返回生成的id;
}
@后期映射(value=“/data”)
公共void saveData(@RequestBody Data){
//保存您描述的数据。而不是“文件:”保存“文件ID:”
}
例2: 有一个端点,并将文件作为字节数组插入数据对象这只适用于小文件。因为据我所知,字节数组有一些长度限制
@PostMapping(value=“/data”)
公共void saveData(@RequestBody Data){
//在数据对象中保存用byte[]数组描述的数据
}
我们将非常感谢任何实现这一目标的最佳实践,谢谢您的支持??感谢您的回答,Dumbo,这个解决方案是有效的,但我有一个不同的场景,我必须将附件与它的唯一id和它在数据库中的类型联系起来。就像我在数据库中保存json对象一样,我需要保存“caseAttachments”对象,该对象包含附件信息以及保存它的url。