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

如何在spring控制器中使用multipartfile?

卫子平
2023-03-14

我一直在尝试将文件从rest客户端发送到我的spring控制器。在控制器中,我使用“@requestParam(“file”)MultipartFile file”从客户端获取文件,并使用REST服务注释进行注释,如下所示

@Override
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
//  @Path("/FinancePdf")
    @ApiOperation(value = "save finance pdf")
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Success",response = String.class),
    })

    public @ResponseBody  String saveFinancePdf(@RequestParam("file") MultipartFile file)
    {
        return "done";
    }

我总是得到415媒体类型不支持。在上面的方法中,如果我不给多部分,它给我的结果是完成了,但不是多部分。

所以我可以知道如何发送文件到我的Spring控制器?

共有1个答案

蔡晨
2023-03-14

尝试使用@FormDataParam并流式传输文件。

public @ResponseBody String saveFinancePdf(
@FormDataParam("file") InputStream in,
@FormDataParam("file") FormDataContentDisposition fileDisposition ){
     return "done";
}
 类似资料:
  • 我对Spring框架是完全陌生的。我有一个任务是在Spring上制作电话簿应用程序。我需要登记和授权,还有我的电话簿。我有两个控制器,第一个是控制授权和注册的UserController 当我尝试进行身份验证或注册时。新用户我有这样的错误: NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalStateException:映射到HTTP路径“HT

  • 问题内容: 我写了一个过滤器函数,它将根据您传递的参数返回数据。我希望控制器具有相同的功能。是否可以在控制器中重用过滤器功能? 到目前为止,这是我尝试过的: 问题答案: 将 $ filter 注入控制器 然后,无论您想在哪里使用该过滤器,都可以像这样使用它: 如果要将参数传递给该过滤器,请使用单独的括号进行处理: 您要过滤的数组在哪里,并且是用于过滤的对象。

  • 我试图通过传递键从JpaRepository的getOne中按主键搜索 我有一个模型(客户),其中定义了客户的详细信息。我有一个接口服务(CustomerService)及其实现(CustomerServiceImpl,它实现CustomerService)。我还有一个接口存储库(CustomerRepository),它扩展了JpaRepository。现在在我的控制器中,我将id传递给函数(f

  • 我有下一个Rest控制器 我将Spring Security用于以下配置: 我想为我的控制器编写单元测试。我写了下一个测试,但是它们工作得不好: 当我开始测试时,我得到了状态404。如果在安全配置中删除@EnableGlobalmetodSecurity(prePostEnable=true),测试正在工作,但不工作@PreAuthorize。我有一些问题: 如果prespenabled=true

  • 问题内容: 直接调用数据存储库方法时是否可以指定?这是存储库代码-请注意,我不想通过REST公开它,而是希望能够从服务或控制器中调用它: 然后在控制器中,我这样做: 有没有什么方法来指定的,当它被称为直接像上面的方法? 我意识到上面的代码对于某些人来说可能看起来很奇怪…可以通过REST公开存储库并将其放入@PreAuthorize存储库中。Thought Controller是进行安全检查的更正确

  • 问题内容: 我正在使用spring 3.2.0和junit 4 这是我需要测试的控制器方法 spring-servlet config is: This is my test class : 如何使用MockMvc测试此方法? 问题答案: 你可以使用以下注释来使用应用程序调度程序servlet xml。以下示例使用路径/ mysessiontest设置了一些会话属性并期望返回某个视图来命中控制器: