我有一行测试xlsx文件,其中包含一行随机数据:
A | B | C | D
Test1 | Test2 | Test3 | Test4
然后我使用以下命令将此测试文件上传到我的弹簧控制器。
curl -k -F file=@/Users/username/Desktop/test.xlsx https://server-name:8303/rpl/spreadsheet/getasinlimits
但是当我尝试记录文件的内容时,我得到的是一堆不可读的角色。
起初我认为这是因为编码,我尝试使用String line = new String(multipartFile.getBytes(), "UTF-8")
,但仍然是相同的。
我在这里有一些日志信息,结果我得到了:
117< --------- lines.size()。 ,为什么117 ?????我在文件中只有一行。
file< ----------- multipartFile.getName()
test.xlsx。 < -------------- multipartFile.getOriginalFilename()
任何人都可以告诉我为什么我有117行?为什么内容难以理解?
@RequestMapping(value = "/rpl/spreadsheet/getasinlimits", method = RequestMethod.POST)
@ResponseBody
public BGCServiceResponseStatus getAsinLimit(@RequestParam("file") MultipartFile multipartFile) {
List<String> lines = parseMultipartFileLinebyLine(multipartFile);
logger.info(Integer.toString(lines.size()));
logger.info(multipartFile.getName());
logger.info(multipartFile.getOriginalFilename());
return new BGCServiceResponseStatus(ResponseCode.OK, "{\"status\": \"OK.\"}");
}
private List<String> parseMultipartFileLinebyLine(MultipartFile multipartFile) {
BufferedReader br;
List<String> lines = new ArrayList<>();
if (!multipartFile.isEmpty()) {
try {
String line;
br = new BufferedReader(new InputStreamReader(multipartFile.getInputStream()));
while ((line = br.readLine()) != null) {
lines.add(line);
}
} catch (IOException e) {
}
}
return lines;
}