【问题标题】:Upload File in Spring without using form data在不使用表单数据的情况下在 Spring 中上传文件
【发布时间】:2016-03-12 22:06:11
【问题描述】:

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

curl -XPOST localhost:8080/upload -d @local_file.data

有没有办法用 Spring 做到这一点?似乎我想将 @RequestBody 与 File 一起使用,但这对大多数人来说似乎是一个可怕的想法。为什么? MultipartFile 与 File 有何不同?仅仅因为它支持表单数据?

我能找到的只有表格和 MultipartFile。我正在做的事情在某种程度上是天生错误的吗?我在使用 Python/Django 之前已经完成了,并且没有那么难。

【问题讨论】:

  • 这不会错,但如果没有表单数据,您将无法为您的应用程序创建 Web 前端。如果你知道,你会一直并且只会卷曲到你的应用程序中,你应该没问题。
  • 谢谢。它不是一个真正的应用程序。这是一个后端 API 服务。

标签: java file spring-mvc upload


【解决方案1】:

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

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

初步测试工作。在这里的 Spring 文档中找到它:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestbody

【讨论】:

    猜你喜欢
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    相关资源
    最近更新 更多