mirror of
https://github.com/MCSManager/MCSManager.git
synced 2025-02-17 15:59:41 +08:00
解压文件跟随编码
This commit is contained in:
parent
512ae74f26
commit
1f25b74f82
@ -14,6 +14,7 @@ const fs = require("fs");
|
||||
const os = require('os');
|
||||
|
||||
|
||||
|
||||
router.post('/mkdir', (req, res) => {
|
||||
let name = parseHandle(req.body, "string");
|
||||
if (name == "") return;
|
||||
@ -132,10 +133,12 @@ router.post('/extract', (req, res) => {
|
||||
if (!zipName) {
|
||||
res.status(403).send("非法名称");
|
||||
}
|
||||
const fileOperate = new UseFileOperate(req.session.fsos).fileOperate;
|
||||
const cwd = req.session.fsos.cwd;
|
||||
const result = fileOperate.extract(pathm.join(cwd, zipName));
|
||||
sendHandle(req, res, result);
|
||||
setTimeout(() => {
|
||||
const fileOperate = new UseFileOperate(req.session.fsos).fileOperate;
|
||||
const cwd = req.session.fsos.cwd;
|
||||
fileOperate.extract(pathm.join(cwd, zipName));
|
||||
}, 0);
|
||||
sendHandle(req, res, true);
|
||||
});
|
||||
|
||||
|
||||
|
@ -7,7 +7,13 @@ const {
|
||||
const fsex = require('fs-extra');
|
||||
const AdmZip = require('adm-zip');
|
||||
const iconv = require('iconv-lite');
|
||||
const os = require('os');
|
||||
|
||||
let SYSTEM_CODE = null;
|
||||
if (os.platform() == "win32")
|
||||
SYSTEM_CODE = 'GBK';
|
||||
else
|
||||
SYSTEM_CODE = 'UTF-8';
|
||||
|
||||
|
||||
//文件操作具体
|
||||
@ -156,7 +162,7 @@ class FileOperate extends BaseFileOperate {
|
||||
const zipEntries = zip.getEntries();
|
||||
for (let i = 0; i < zipEntries.length; i++) {
|
||||
const entry = zipEntries[i];
|
||||
entry.entryName = iconv.decode(entry.rawEntryName, 'gbk');
|
||||
entry.entryName = iconv.decode(entry.rawEntryName, SYSTEM_CODE);
|
||||
}
|
||||
zip.extractAllTo(zipExtractDir, true);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user