Spring MVC:上传的multipartFile的内容不可读

时间:2017-10-10 23:29:57

标签: java spring spring-mvc

我有一行测试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;
    }

0 个答案:

没有答案