上传文件的cURL命令不上传文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (48)

所以我有一个Java API,我使用cURL命令将GET / POST请求发送到我的API。我在Java API中使用Springboot。我的cURL命令如下所示:

curl -X POST \
  https://localhost:8443/abc/code/v \
  -H 'Content-Type: multipart/form-data' \
  -F file=@/path/to/file.txt

我接收此请求的Java Springboot方法如下所示:

@RequestMapping(method = RequestMethod.POST, value = "/{code}/{v}")
    public ResponseEntity<Object> uploadTemplate( //
            @ApiParam(value = "code desc") //
            @PathVariable final String code, //
            @ApiParam(value = "v desc") //
            @PathVariable final String v, //
            @RequestParam("file") MultipartFile file
    ) throws IOException {
        //log.info("received [url: /tabc/" + code + "/" + v + ", method: POST");
        System.out.println("file: "+ file.getName());
}

打印出来的 "file: file"

它看起来不像file.txt是上传到服务器了!我究竟做错了什么?我已经抬头看了谷歌,但看起来我几乎做了所有事情。

提问于
用户回答回答于

MultipartFile.getName返回的多形式参数的名称。

要获取的字节MultipartFile使用file.getBytes()

如果您MultipartFile是文本文件,则可以使用此实用程序方法检索该文本文件中的行列表:

    public List<String> read(MultipartFile file) throws IOException {
        InputStreamReader in = new InputStreamReader(file.getInputStream());
        try (BufferedReader reader = new BufferedReader(in)) {
            return reader.lines().collect(Collectors.toList());
        }
    }

扫码关注云+社区

领取腾讯云代金券