修改dmp邮件
parent
438e014df1
commit
3f36dcbf51
@ -0,0 +1,83 @@
|
|||||||
|
package com.baiye.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.text.StrPool;
|
||||||
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import net.lingala.zip4j.core.ZipFile;
|
||||||
|
import net.lingala.zip4j.exception.ZipException;
|
||||||
|
import net.lingala.zip4j.model.ZipParameters;
|
||||||
|
import net.lingala.zip4j.util.Zip4jConstants;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Enzo
|
||||||
|
* @date : 2022/10/24
|
||||||
|
*/
|
||||||
|
public class CompressUtil {
|
||||||
|
private CompressUtil() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param zipPath 压缩文件路径
|
||||||
|
* @param filepath 文件路径
|
||||||
|
* @param password 压缩密码
|
||||||
|
*/
|
||||||
|
public static void decryptionCompression(String zipPath, String filepath, String password) {
|
||||||
|
try {
|
||||||
|
//创建压缩文件
|
||||||
|
ZipFile zipFile = new ZipFile(zipPath);
|
||||||
|
ArrayList<File> files = new ArrayList<>();
|
||||||
|
files.add(new File(filepath));
|
||||||
|
|
||||||
|
//设置压缩文件参数
|
||||||
|
ZipParameters parameters = new ZipParameters();
|
||||||
|
//设置压缩方法
|
||||||
|
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
|
||||||
|
|
||||||
|
//设置压缩级别
|
||||||
|
//DEFLATE_LEVEL_FASTEST - Lowest compression level but higher speed of compression
|
||||||
|
//DEFLATE_LEVEL_FAST - Low compression level but higher speed of compression
|
||||||
|
//DEFLATE_LEVEL_NORMAL - Optimal balance between compression level/speed
|
||||||
|
//DEFLATE_LEVEL_MAXIMUM - High compression level with a compromise of speed
|
||||||
|
//DEFLATE_LEVEL_ULTRA - Highest compression level but low speed
|
||||||
|
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
|
||||||
|
|
||||||
|
//设置压缩文件加密
|
||||||
|
parameters.setEncryptFiles(true);
|
||||||
|
|
||||||
|
//设置加密方法
|
||||||
|
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
|
||||||
|
|
||||||
|
//设置aes加密强度
|
||||||
|
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
|
||||||
|
|
||||||
|
//设置密码
|
||||||
|
parameters.setPassword(password);
|
||||||
|
|
||||||
|
//添加文件到压缩文件
|
||||||
|
zipFile.addFiles(files, parameters);
|
||||||
|
} catch (ZipException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String unzipFiles(String fileUrl, String zipPath, String password) throws ZipException {
|
||||||
|
File file = new File(zipPath);
|
||||||
|
ZipFile zipFile = new ZipFile(file);
|
||||||
|
//设置文件编码,根据实际场景
|
||||||
|
zipFile.setFileNameCharset(CharsetUtil.GBK);
|
||||||
|
if (zipFile.isEncrypted()) {
|
||||||
|
zipFile.setPassword(password);
|
||||||
|
}
|
||||||
|
String uuid = IdUtil.randomUUID();
|
||||||
|
String filePath
|
||||||
|
= fileUrl.concat(StrPool.SLASH).concat(uuid);
|
||||||
|
zipFile.extractAll(filePath);
|
||||||
|
return filePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue