支持rar

This commit is contained in:
midoks
2023-09-15 00:01:37 +08:00
parent 8a6dbf22c0
commit abc6e8f597
4 changed files with 183 additions and 63 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ from flask import request
class config_api:
__version = '0.16.1'
__version = '0.16.1.1'
__api_addr = 'data/api.json'
def __init__(self):
+41 -3
View File
@@ -87,6 +87,12 @@ class files_api:
path = request.form.get('path', '')
return self.unzip(sfile, dfile, stype, path)
def uncompressApi(self):
sfile = request.form.get('sfile', '')
dfile = request.form.get('dfile', '')
path = request.form.get('path', '')
return self.uncompress(sfile, dfile, path)
# 移动文件或目录
def mvFileApi(self):
sfile = request.form.get('sfile', '')
@@ -830,10 +836,42 @@ class files_api:
except:
return mw.returnJson(False, '文件压缩失败!')
def unzip(self, sfile, dfile, stype, path):
def uncompress(self, sfile, dfile, path):
if not os.path.exists(sfile):
return mw.returnMsg(False, '指定文件不存在!')
return mw.returnJson(False, '指定文件不存在!')
filename = os.path.basename(sfile)
extension = os.path.splitext(filename)[-1]
extension = extension.strip('.')
if not extension in ['gz', 'zip', 'rar']:
return mw.returnJson(False, '现在仅支持gz,zip,rar文件解压!')
try:
tmps = mw.getRunDir() + '/tmp/panelExec.log'
if extension == 'zip':
cmd = "cd " + path + " && unzip -o -d '" + dfile + \
"' '" + sfile + "' > " + tmps + " 2>&1 &"
mw.execShell(cmd)
if extension == 'gz':
cmd = "cd " + path + " && tar -zxvf " + sfile + \
" -C " + dfile + " > " + tmps + " 2>&1 &"
mw.execShell(cmd)
if extension == 'rar':
cmd = "cd " + path + " && unrar x t.rar " + \
sfile + " " + dfile + " > " + tmps + " 2>&1 &"
mw.execShell(cmd)
if os.path.exists(dfile):
self.setFileAccept(dfile)
mw.writeLog("文件管理", '文件解压成功!', (sfile, dfile))
return mw.returnJson(True, '文件解压成功!')
except Exception as e:
return mw.returnJson(False, '文件解压失败!:' + str(e))
def unzip(self, sfile, dfile, stype, path):
if not os.path.exists(sfile):
return mw.returnJson(False, '指定文件不存在!')
try:
tmps = mw.getRunDir() + '/tmp/panelExec.log'