This commit is contained in:
zt
2025-04-16 18:46:47 +08:00
parent 3133300fe5
commit b038d1567e

View File

@ -22,7 +22,7 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import java.util.List; import java.util.List;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream; import java.util.zip.ZipOutputStream;
@ -51,6 +51,7 @@ public class TemplateDownloadController {
BgtProjectRecruit recruit = recruitService.queryById(dto.getRecruitId()); BgtProjectRecruit recruit = recruitService.queryById(dto.getRecruitId());
String firstLevelFolderName = recruit.getId() + "_" + recruit.getRecruitName(); String firstLevelFolderName = recruit.getId() + "_" + recruit.getRecruitName();
File baseDir = new File(TEMP_DIR); File baseDir = new File(TEMP_DIR);
File folderToZip = new File(baseDir, firstLevelFolderName); File folderToZip = new File(baseDir, firstLevelFolderName);
File zipFile = new File(baseDir, folderToZip.getName() + ".zip"); File zipFile = new File(baseDir, folderToZip.getName() + ".zip");
@ -100,6 +101,10 @@ public class TemplateDownloadController {
return; return;
} }
} }
byte[] bytes = firstLevelFolderName.getBytes(StandardCharsets.UTF_8);
// 将 UTF - 8 字节数组转换回字符串
firstLevelFolderName = new String(bytes, StandardCharsets.UTF_8);
File firstLevelFolder = new File(baseDir, firstLevelFolderName); File firstLevelFolder = new File(baseDir, firstLevelFolderName);
if (!firstLevelFolder.exists()) { if (!firstLevelFolder.exists()) {
if (firstLevelFolder.mkdirs()) { if (firstLevelFolder.mkdirs()) {
@ -118,6 +123,11 @@ public class TemplateDownloadController {
String idCard = wgzUser.getIdentityCard(); String idCard = wgzUser.getIdentityCard();
// 第二层文件夹名 // 第二层文件夹名
String secondLevelFolderName = userName + "_" + idCard; String secondLevelFolderName = userName + "_" + idCard;
byte[] bytes2 = secondLevelFolderName.getBytes(StandardCharsets.UTF_8);
// 将 UTF - 8 字节数组转换回字符串
secondLevelFolderName = new String(bytes2, StandardCharsets.UTF_8);
File secondLevelFolder = new File(firstLevelFolder, secondLevelFolderName); File secondLevelFolder = new File(firstLevelFolder, secondLevelFolderName);
if (!secondLevelFolder.exists()) { if (!secondLevelFolder.exists()) {
if (secondLevelFolder.mkdirs()) { if (secondLevelFolder.mkdirs()) {
@ -131,6 +141,10 @@ public class TemplateDownloadController {
// 创建第三层的两个固定文件夹 // 创建第三层的两个固定文件夹
String[] thirdLevelFolderNames = {"劳务合同", "保险"}; String[] thirdLevelFolderNames = {"劳务合同", "保险"};
for (String thirdLevelFolderName : thirdLevelFolderNames) { for (String thirdLevelFolderName : thirdLevelFolderNames) {
byte[] bytes3 = thirdLevelFolderName.getBytes(StandardCharsets.UTF_8);
// 将 UTF - 8 字节数组转换回字符串
thirdLevelFolderName = new String(bytes3, StandardCharsets.UTF_8);
File thirdLevelFolder = new File(secondLevelFolder, thirdLevelFolderName); File thirdLevelFolder = new File(secondLevelFolder, thirdLevelFolderName);
if (!thirdLevelFolder.exists()) { if (!thirdLevelFolder.exists()) {
if (thirdLevelFolder.mkdirs()) { if (thirdLevelFolder.mkdirs()) {
@ -144,7 +158,7 @@ public class TemplateDownloadController {
} }
public static void zipFolder(File folder, File zipFile) throws IOException { public static void zipFolder(File folder, File zipFile) throws IOException {
try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile), Charset.forName("GBK"))) { try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile), StandardCharsets.UTF_8)) {
// 去掉添加根文件夹这一步 // 去掉添加根文件夹这一步
File[] subFiles = folder.listFiles(); File[] subFiles = folder.listFiles();
if (subFiles != null) { if (subFiles != null) {