分片上传的实现也比较简单,
主要实现就是对分片的判断,
然后对分片上传,
上传完成之后对分片进行合并,删除分片信息,只保留原始文件。
基本实现
本地文件配置路径实体---base_localfilepathconfig
private String ipAddress; private String filePath; private String monitorPath; private String zipPath; private String unZipPath; private int consumerThreadNum; private String backUpPath; private String failZipPath; private int state;
Service核心代码
/**gn * @param file 文件 * @param chunks 分片总数 * @param chunk 当前分片 * @param name 文件名 * @param md5 文件md5值 * @return * @Description: 手动上传 * @date 2022/8/8 11:42 * @author Qifan */ public String uploadFile(MultipartFile file, String chunks, String chunk, String name, String md5) { //数据库获取实体 List<LocalFilePathEntity> localPathInfoList = localFilePathService.findLocalPathInfo(); //准备返回结果 Map<String, String> resultMap; String returnJsonStr; if (!CollectionUtils.isEmpty(localPathInfoList) && !StringUtils.isBlank(localPathInfoList.get(0).getZipPath())) { //准备对象 LocalFilePathEntity filePathEntity = localPathInfoList.get(0); String packFilePath = filePathEntity.getZipPath(); //文件名 String str = name.substring(0, name.lastIndexOf(".")); //创建目录 FileCommonUtils.createFileDirectory(packFilePath); //对分片进行判断,存在走分片 if (chunks != null && chunk != null) { //创建分片路径--->.../文件名/md5/ File dir = new File(packFilePath + str + "/" + md5); if (!dir.exists()) { dir.mkdirs(); } try { byte[] bytes = file.getBytes();