Spring REST 上传文件为二进制文件

use*_*439 6 java rest spring spring-restcontroller spring-rest

我正在使用弹簧。我想实现休息控制器将文件上传到服务器。我发现了很多这样的例子:

public ResponseEntity doSomething(@PathVariable String paramOne, @RequestParam(required = false, name="file") List<MultipartFile> attachments
                                            ) throws IOException {
//Some logic here
}
Run Code Online (Sandbox Code Playgroud)

然后我用邮递员测试它,我创建了一个“表单数据”类型的请求,添加婴儿车名称“文件”,选择类型文件,然后选择文件。它工作正常。

它创建一个 post 请求作为多部分请求。但出于某些原因,我不想使用多部分发布请求。所以我想通过在邮递员类型“二进制”中选择来上传文件。所以我的问题:

  1. spring 能否以某种方式映射这种请求,以便我在处理程序方法中将输入文件作为参数?(我知道我可以获取 HttpServletRequest 并从中获取 InputStream,但是有更好的方法吗?)

  2. 通过这种方法,我只能得到输入流。传递文件名的好方法是什么?

  3. 这种方法的主要缺点是什么?