所以我有一个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
根本没有上传到服务器!我究竟做错了什么?我查过Google,但看起来我几乎在做所有事情。
答案 0 :(得分:1)
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());
}
}