Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将MultiPartFile作为JSON请求属性发送到Spring引导REST控制器_Java_Json_Spring_Spring Boot - Fatal编程技术网

Java 将MultiPartFile作为JSON请求属性发送到Spring引导REST控制器

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

我有一个JSON请求,如下所示,我想将我的文件I-e(pdf、jpeg、png等)作为JSON请求体的一部分,如下所示。 我将如何在SpringBootRESTAPI中做到这一点。? 我的请求机构是:

    {
   "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。