首页 > 解决方案 > 如何使用多部分/表单数据?

问题描述

我需要实现一个 REST 端点,它接收
我使用的多部分/表单数据
- Spring Boot
- Kotlin
- Spring MVC

包含以下部分的多部分表单提交:

deployment-name ----- text/plain
enable-duplicate-filtering ----- text/plain
deploy-changed-only ----- text/plain
deployment-source ----- text/plain
tenant- id ----- text/plain
* ----- application/octet-stream

休息控制器看起来像这样:

    @PostMapping("/data/deployment/create")
    fun uploadDmn(@RequestBody() file: Any){

    }

当我收到请求时,会出现错误:

内容类型 'multipart/form-data;boundary=-------------------------914124725006223485188585;charset=UTF-8' 不支持]

如果我使用“MultipartFile”而不是任何,则文件为 NULL。

    @PostMapping("/data/deployment/create")
    fun uploadDmn(@RequestBody() file: MultipartFile){

    }

请求示例:

--28319d96a8c54b529aa9159ad75edef9
Content-Disposition: form-data; name="deployment-name"

aName
--28319d96a8c54b529aa9159ad75edef9
Content-Disposition: form-data; name="enable-duplicate-filtering"

true
--28319d96a8c54b529aa9159ad75edef9
Content-Disposition: form-data; name="deployment-source"

process application
--28319d96a8c54b529aa9159ad75edef9
Content-Disposition: form-data; name="data"; filename="test.bpmn"

<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions ...>
  <!-- BPMN 2.0 XML omitted -->
</bpmn2:definitions>
--28319d96a8c54b529aa9159ad75edef9--

有人可以帮忙吗?

标签: javaspring-bootspring-mvckotlinmultipartform-data

解决方案


改造有关于FORM ENCODED AND MULTIPART

要点是用注释函数@Multipart并将文件注释为@Part


推荐阅读