*** 以下demo ,设置单个压缩文件大小是:1M
***多个压缩文件中间用逗号分隔,并上传oss
/** * 多文件压缩并上传oss */ private String uploadOss(List<File> files, String fileId) { List<List<File>> splitFilesList = new ArrayList<>(); long currentSize = 0; List<File> currentList = new ArrayList<>(); for (File file : files) { long fileSize = 0; fileSize += file.length()/(1024*1024); if (currentSize + fileSize <= 100) { currentList.add(file); currentSize += fileSize; } else { splitFilesList.add(currentList); currentList = new ArrayList<>(); currentList.add(file); currentSize = fileSize; } } if (!currentList.isEmpty()) { splitFilesList.add(currentList); } log.info("splitFilesList:{}", splitFilesList.toString()); for (List<File> files1 : splitFilesList) { ZipFile zipFile = EcZipUtil.zip(excelUrl, files1, ""); ReturnResult<FileUploadResponse> response = fileClient.ossUpload(zipFile.getFile()); String fileIdUpload = response.getData().getId(); log.info("上传文件后, fileId:{}", fileIdUpload); if (StringUtils.isNotEmpty(fileId)) { if (StringUtils.isNotEmpty(fileIdUpload)) { fileId += "," + fileIdUpload; } else { fileId = fileIdUpload; } log.info("fileId:{}", fileId); } else { fileId = fileIdUpload; } } // 压缩上传后删除文件列表 if (files != null && files.size() > 0) { //获取当前文件夹下的所有文件,包括文件夹 log.info("上传压缩文件后开始删除文件"); for (File file : files) { try { if (file != null) { boolean delete = file.delete(); if (delete == false) { log.info("文件删除失败"); } } } catch (Exception e) { log.error("文件删除失败:" + file.getName() + e.getMessage()); } } log.info("上传压缩文件后删除文件处理完成"); } return fileId; }