Java 在Spring中上载文件而不使用表单数据

Java 在Spring中上载文件而不使用表单数据,java,file,spring-mvc,upload,Java,File,Spring Mvc,Upload,我正在Java中使用Spring框架。使用它,我试图编写一个API端点,它接受一个文件进行上传。我不想使用表单数据。基本上,我希望下面的curl命令在我的端点上工作 curl -XPOST localhost:8080/upload -d @local_file.data 有没有办法用Spring做到这一点?似乎我想在文件中使用@RequestBody,但对大多数人来说,这似乎是一个可怕的想法。为什么?MultipartFile和File有何不同?仅仅因为它支持表单数据 我所能找到的只是关于表

我正在Java中使用Spring框架。使用它,我试图编写一个API端点,它接受一个文件进行上传。我不想使用表单数据。基本上,我希望下面的curl命令在我的端点上工作

curl -XPOST localhost:8080/upload -d @local_file.data
有没有办法用Spring做到这一点?似乎我想在文件中使用@RequestBody,但对大多数人来说,这似乎是一个可怕的想法。为什么?MultipartFile和File有何不同?仅仅因为它支持表单数据


我所能找到的只是关于表单和多部分文件的讨论。我所做的是不是天生就错了?我在使用Python/Django之前就做过,这并不难。

我的问题的答案似乎是将@RequestBody与字节数组一起使用。这将启动ByteArrayHttpMessageConverter,它是默认的HttpMessageConverter之一。我最终得到了这样一个API端点

@RequestMapping(value = "/upload", method=RequestMethod.POST)
public Response uploadFile(@RequestBody byte[] file) {
  ...
}

初步测试工作。在这里的Spring docs中找到它:

这可能没有错,但如果没有表单数据,您将很难为应用程序创建web前端。如果你知道你将永远只卷曲到你的应用程序中,你应该很好。谢谢。它不是一个真正的应用程序。这是一个后端API服务。