当前位置: 首页 > 知识库问答 >
问题:

解析Spring中的文件上载

葛威
2023-03-14

我想解析将文件作为多部分/表单数据接受的请求主体。目前,当我尝试将inputStream打印为字符串时,我得到如下结果:

----------------------------559363225496099939024171
Content-Disposition: form-data; 
name="file"; 
filename="upload.txt"
Content-Type: text/plain
{  
    "documents": [    
        {      
            "id": "1",
            "text": "abc"    
        }  
     ]
}
----------------------------559363225496099939024171

下面是我的控制器。Java语言

    @POST
    @Path("/modelInfo")
    @Produces({ "application/json" })
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response getModel(InputStream file) throws IOException {

        InputStreamReader isReader = new InputStreamReader(file, StandardCharsets.UTF_8);
        //Creating a BufferedReader object
        BufferedReader reader = new BufferedReader(isReader);
        StringBuffer sb = new StringBuffer();
        String str;
        while ((str = reader.readLine()) != null) {
            sb.append(str);
        }
   
        return Response.status(Response.Status.OK).entity(sb.toString()).build();
    }

上载txt文件

{
  "documents": [
    {
      "id": "1",
      "text": "abc"
    }
  ]
}

所以基本上,我是在发送sb。toString()返回响应正文。

我的问题是,如何仅从我收到的上述回复中提取内容数据?

我尝试使用多部分文件,但仍然没有成功

共有1个答案

柴磊
2023-03-14

rest endpoint方法参数应为MultipartFile类型,然后可以从该对象获取文件输入流

    @POST
    @Path("/modelInfo")
    @Produces({ "application/json" })
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response getModel(@RequestParam("file") MultipartFile file) throws IOException {
        InputStreamReader isReader = new InputStreamReader(file.getInputStream(), StandardCharsets.UTF_8);
    ...
 类似资料:
  • 本文向大家介绍Spring Boot 文件上传原理解析,包括了Spring Boot 文件上传原理解析的使用技巧和注意事项,需要的朋友参考一下 首先我们要知道什么是Spring Boot,这里简单说一下,Spring Boot可以看作是一个框架中的框架--->集成了各种框架,像security、jpa、data、cloud等等,它无须关心配置可以快速启动开发,有兴趣可以了解下自动化配置实现原理,本

  • 我对xml知之甚少或一无所知,因此必须编写一个spring-security.xml文件。我想这个问题与我的xml不遵循XSD有关。下面是XML。 当我试图运行web应用程序时,我得到了一个错误。 spring security xsd

  • 我曾在其他项目中工作过,我只是重新做同样的事情,但由于某些原因,它不起作用。Spring不是从属性文件读取,而是从字面上取值 AppConfig.java ApplicationContext.xml: AppConfig.Properties 想法?

  • 本文向大家介绍java eclipse 中文件的上传和下载示例解析,包括了java eclipse 中文件的上传和下载示例解析的使用技巧和注意事项,需要的朋友参考一下 文件的上传与下载(一) 在实现文件上传和下载之前我们需要做一些准备工作,在Apache官网去下载文件上传下载的两个组件,下载链接这里给出:common-fileupload组件下载:http://commons.apache.org

  • 我有一个包含员工信息的文本文件。第一个单词是员工的姓氏,第二个单词是第一个名字。字符代码h或s告诉我他们是什么样的员工,有薪或小时。最后,字符代码后面的数字是小时工资(如果为小时工)或年薪(如果为受薪员工)。 我想对这些信息做的是扫描文本文件,根据识别的字符代码自动创建新的受薪员工对象或小时员工对象。 这些是小时雇员对象的参数。 这就是我想到的。 这段代码的问题是,我从in.nextDouble(

  • 这是我用来读取gradle项目中的application.properties文件的代码。 我的文件位于中 这就是我试图在IntelliJ中运行应用程序的方式