whycxzp
2022-09-05 12441b157e38abdfe7eeb94bb7197fcb90f00b48
修复问题
1个文件已修改
22 ■■■■■ 已修改文件
src/main/java/com/whyc/service/MaterialService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/MaterialService.java
@@ -365,8 +365,8 @@
        List<String> currentFileList = new LinkedList<>();
        List<String> uploadingFileList = new LinkedList<>();
        //String dirPath = "doc_file" + File.separator + "material" + File.separator + material.getId() + material.getSubCode() + material.getSubModel();
        String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + material.getSubCode() + material.getSubModel();
        String dirPathDB = "doc_file" + File.separator + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + material.getSubModel();
        String dirPath = CommonUtil.getRootFile() + "material" + File.separator + material.getId() + "-"+ material.getSubCode() + "-" + material.getSubModel();
        File dirFile = new File(dirPath);
        String originalFilename = multipartFile.getOriginalFilename();
@@ -376,27 +376,34 @@
        //压缩包文件夹校验
        File zipFile = new File(dirPath + File.separator + originalFilename);
        boolean dirFileExist = true;
        if(!dirFile.exists()){
            dirFile.mkdirs();
            dirFileExist = false;
        }
        multipartFile.transferTo(zipFile);
        //解压文件夹,删除原zip文件
        String unPackageDir = dirPath + File.separator + timestamp;
        Zip4jUtil.unPackZip(zipFile, null, unPackageDir);
        File unPackageFile = new File(unPackageDir);
        File[] unPackageFileList = unPackageFile.listFiles();
        zipFile.delete();
        for (int i = 0; i < unPackageFileList.length; i++) {
            File tempFile = unPackageFileList[i];
            if(tempFile.isDirectory()){
                FileUtil.deleteFile(unPackageFile);
                if(!dirFileExist){
                    FileUtil.deleteFile(dirFile);
                }
                return new Response().set(1,false,"拒绝上传:上传的压缩包存在文件夹");
            }
        }
        zipFile.delete();
        if(!dirFile.exists()){
            dirFile.mkdirs();
        if(!dirFileExist){
            //路径不存在,说明是首次上传,设置物料对应的fileUrl
            Material temp = new Material();
            temp.setId(material.getId());
            temp.setFileUrl(dirPath);
            temp.setFileUrl(dirPathDB);
            mapper.updateById(temp);
        }else{
            //查询路径下现有的所有文件
@@ -410,11 +417,12 @@
        for (String uploadingFile : uploadingFileList){
            if(currentFileList.contains(uploadingFile)){
                new File(unPackageDir + File.separator + uploadingFile)
                        .renameTo(new File(unPackageDir + File.separator + formattedTimestamp + uploadingFile));
                        .renameTo(new File(unPackageDir + File.separator  + uploadingFile.substring(0,uploadingFile.lastIndexOf(".")) + "_" + formattedTimestamp + uploadingFile.substring(uploadingFile.lastIndexOf("."))));
            }
        }
        //上传的文件夹转移到正式路径
        org.aspectj.util.FileUtil.copyDir(unPackageFile,dirFile);
        FileUtil.deleteFile(unPackageFile);
        return new Response().set(1,true,"上传完成");
    }