wangliang 1 сар өмнө
parent
commit
ab50cb6c90

+ 1 - 1
pom.xml

@@ -41,7 +41,7 @@
         <junit.version>4.13</junit.version>
         <activiti.version>6.0.0</activiti.version>
         <activiti-modeler.version>5.22.0</activiti-modeler.version>
-        <zip4j.version>1.3.3</zip4j.version>
+        <zip4j.version>2.11.5</zip4j.version>
         <nanoid.version>2.0.0</nanoid.version>
 <!--        <jasypt.version>3.0.3</jasypt.version>-->
         <httpmime.version>4.5.13</httpmime.version>

+ 17 - 11
sop-common/src/main/java/com/qmth/sop/common/util/Zip4jUtil.java

@@ -3,10 +3,13 @@ package com.qmth.sop.common.util;
 import cn.hutool.core.collection.CollectionUtil;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
-import net.lingala.zip4j.core.ZipFile;
+import net.lingala.zip4j.ZipFile;
 import net.lingala.zip4j.exception.ZipException;
 import net.lingala.zip4j.model.ZipParameters;
-import net.lingala.zip4j.util.Zip4jConstants;
+import net.lingala.zip4j.model.enums.AesKeyStrength;
+import net.lingala.zip4j.model.enums.CompressionLevel;
+import net.lingala.zip4j.model.enums.CompressionMethod;
+import net.lingala.zip4j.model.enums.EncryptionMethod;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.CollectionUtils;
@@ -136,8 +139,8 @@ public class Zip4jUtil {
                 file.getParentFile().mkdirs();
             }
             ZipFile zipFile = new ZipFile(scrPath);
-            if (Objects.nonNull(password) && zipFile.isEncrypted()) {
-                zipFile.setPassword(password);
+            if (Objects.nonNull(password)) {
+                zipFile.setPassword(password.toCharArray());
             }
             File currentFile = new File(destPath);
             if (!currentFile.exists()) {
@@ -167,17 +170,20 @@ public class Zip4jUtil {
             }
             // 生成的压缩文件
             ZipFile zipFile = new ZipFile(scrPath);
-            //            zipFile.setFileNameCharset("UTF-8");
+//            zipFile.setCharset(Charset.forName("UTF-8"));
+            if (Objects.nonNull(password)) {
+                zipFile.setPassword(password.toCharArray());
+            }
             ZipParameters parameters = new ZipParameters();
             // 压缩级别
-            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
+            parameters.setCompressionMethod(CompressionMethod.DEFLATE);
             // 压缩级别
-            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
+            parameters.setCompressionLevel(CompressionLevel.NORMAL);
             if (Objects.nonNull(password)) {
                 parameters.setEncryptFiles(true);
-                parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
-                parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
-                parameters.setPassword(password);
+                parameters.setEncryptionMethod(EncryptionMethod.AES);
+                parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
+//                parameters.setPassword(password);
             }
 
             File[] fs = null;
@@ -195,7 +201,7 @@ public class Zip4jUtil {
             // 遍历test文件夹下所有的文件、文件夹
             for (File f : fs) {
                 if (f.isDirectory()) {
-                    zipFile.addFolder(f.getPath(), parameters);
+                    zipFile.addFolder(new File(f.getPath()), parameters);
                 } else {
                     zipFile.addFile(f, parameters);
                 }