是否可以使用Spring Batch处理从Web应用程序上传的Multipart CSV文件?

时间:2018-11-12 11:28:31

标签: java spring spring-boot spring-batch batch-processing

我想将包含学生数据的csv文件转换为列表,然后插入数据库。我浏览了来自不同来源的许多示例,它们都没有提供使用 spring batch 从Web UI上传的批处理csv文件的答案。所有示例都处理位于资源文件夹(类路径)中的csv文件。 请帮助我处理使用以下发布方法上传的csv文件。

@PostMapping("/save")
public ResponseEntity saveStudentDetails(@RequestParam("file") MultipartFile studentCSV) {
   //code to initate batch processing for studentCSV file
}

谢谢。

1 个答案:

答案 0 :(得分:2)

控制器

@RequestMapping(method = RequestMethod.POST, value = "/save")
        public ReturnFormat uploadCSV(@RequestParam("files")  MultipartFile file )
        {
            return uploadingService.uploadCSV( file );
        }

服务类别将类似于

    public void uploadCSV (MultipartFile multipartFile)
    {
        ReturnFormat rf = new ReturnFormat();
        SuccessErrorList selist = new SuccessErrorList();
        try
        {
            File file = convertMultiPartToFile( multipartFile );

    }

    private File convertMultiPartToFile( MultipartFile file ) throws IOException
    {
        File convFile = new File( file.getOriginalFilename() );
        FileOutputStream fos = new FileOutputStream( convFile );
        fos.write( file.getBytes() );
        fos.close();
        return convFile;
    }