wangliang 1 сар өмнө
parent
commit
28feeb4669

+ 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>2.11.5</zip4j.version>
+        <zip4j.version>1.3.3</zip4j.version>
         <nanoid.version>2.0.0</nanoid.version>
 <!--        <jasypt.version>3.0.3</jasypt.version>-->
         <httpmime.version>4.5.13</httpmime.version>

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

@@ -3,19 +3,15 @@ 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.ZipFile;
+import net.lingala.zip4j.core.ZipFile;
 import net.lingala.zip4j.exception.ZipException;
 import net.lingala.zip4j.model.ZipParameters;
-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 net.lingala.zip4j.util.Zip4jConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.CollectionUtils;
 
 import java.io.File;
-import java.nio.charset.Charset;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -140,8 +136,8 @@ public class Zip4jUtil {
                 file.getParentFile().mkdirs();
             }
             ZipFile zipFile = new ZipFile(scrPath);
-            if (Objects.nonNull(password)) {
-                zipFile.setPassword(password.toCharArray());
+            if (Objects.nonNull(password) && zipFile.isEncrypted()) {
+                zipFile.setPassword(password);
             }
             File currentFile = new File(destPath);
             if (!currentFile.exists()) {
@@ -171,20 +167,17 @@ public class Zip4jUtil {
             }
             // 生成的压缩文件
             ZipFile zipFile = new ZipFile(scrPath);
-            zipFile.setCharset(Charset.forName("UTF-8"));
-            if (Objects.nonNull(password)) {
-                zipFile.setPassword(password.toCharArray());
-            }
+            //            zipFile.setFileNameCharset("UTF-8");
             ZipParameters parameters = new ZipParameters();
             // 压缩级别
-            parameters.setCompressionMethod(CompressionMethod.DEFLATE);
+            parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
             // 压缩级别
-            parameters.setCompressionLevel(CompressionLevel.NORMAL);
+            parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
             if (Objects.nonNull(password)) {
                 parameters.setEncryptFiles(true);
-                parameters.setEncryptionMethod(EncryptionMethod.AES);
-                parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
-                //                parameters.setPassword(password);
+                parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
+                parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
+                parameters.setPassword(password);
             }
 
             File[] fs = null;
@@ -202,7 +195,7 @@ public class Zip4jUtil {
             // 遍历test文件夹下所有的文件、文件夹
             for (File f : fs) {
                 if (f.isDirectory()) {
-                    zipFile.addFolder(new File(f.getPath()), parameters);
+                    zipFile.addFolder(f.getPath(), parameters);
                 } else {
                     zipFile.addFile(f, parameters);
                 }