kotlin 跨服务上传文件将前端传过来的file 文件传到另一个方法报错org.springframework.web.multipart.MultipartException: Current request is not a multipart request
时间: 2023-10-20 12:17:51 浏览: 106
这个错误通常是因为你的请求没有设置正确的 Content-Type,或者请求中不包含文件数据。你需要确保请求的 Content-Type 是 multipart/form-data,同时请求中包含文件数据。
以下是一个示例代码,使用 Kotlin 和 Spring Boot 来实现跨服务上传文件:
```kotlin
@RestController
class UploadController(private val restTemplate: RestTemplate) {
@PostMapping("/upload")
fun upload(@RequestParam file: MultipartFile) {
val bytes = file.bytes
val headers = HttpHeaders()
headers.contentType = MediaType.MULTIPART_FORM_DATA
val request = HttpEntity(bytes, headers)
val response = restTemplate.exchange(
"http://remote-service/upload",
HttpMethod.POST,
request,
String::class.java
)
// 处理响应结果
}
}
```
这里使用了 `RestTemplate` 来发送 POST 请求。在发送请求之前,我们需要设置正确的 Content-Type,并将文件数据添加到请求体中。然后,我们可以使用 `RestTemplate.exchange` 方法来发送请求,并获取响应。
在远程服务的控制器中,你需要使用 `@RequestParam` 来接收文件数据:
```kotlin
@RestController
class RemoteController {
@PostMapping("/upload")
fun upload(@RequestParam file: MultipartFile) {
// 处理文件上传逻辑
}
}
```
确保在远程服务中,也设置了正确的 Content-Type,并且能够正确解析请求中的文件数据。如果你仍然遇到问题,请检查你的请求是否正确,或者提供更多错误信息以便我们更好地帮助你。
阅读全文
相关推荐


















