异步解析文件报错 NoSuchFileException

问题描述:同步上传解析文件超时,修改为异步解析后找不到 文件
java.nio.file.NoSuchFileException
原因:异步文件上传,主线程结束后,临时目录的文件会被清理掉,子线程此时确实找不到文件

解决方式:获取文件输入流处理

示例:

 public R uploadExcel(@RequestParam MultipartFile file,
                         @RequestHeader(value = "unified_code") String unifiedCode) {
        // 保存文件信息
        AsyncHandleFile handleFile = new AsyncHandleFile();
        handleFile.setFileType(1);
        handleFile.setFileName(file.getOriginalFilename());
        handleFile.setOriginalRegCode(unifiedCode);
        handleFileService.saveTAsyncHandleFile(handleFile);
        
        InputStream inputStream = file.getInputStream();
        try {
           CompletableFuture.runAsync(() -> {
                        log.info("文件解析开始 ");
                        corpService.uploadExcel(inputStream, unifiedCode, handleFile);
                        log.info("文件解析结束");
                    });
        } catch (Exception e) {
            log.error(e.toString());
        }
        return R.ok("文件解析中,请稍后");
    }
posted @ 2022-03-18 17:51  杯酒-故人  阅读(908)  评论(0)    收藏  举报