mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-18 23:45:52 +08:00
2020-07-10 解决public冲突。
This commit is contained in:
+143
-143
@@ -4,7 +4,7 @@ import psutil
|
||||
import time
|
||||
import os
|
||||
import sys
|
||||
import public
|
||||
import mw
|
||||
import re
|
||||
import json
|
||||
import pwd
|
||||
@@ -21,7 +21,7 @@ class files_api:
|
||||
rPath = None
|
||||
|
||||
def __init__(self):
|
||||
self.rPath = public.getRootDir() + '/recycle_bin/'
|
||||
self.rPath = mw.getRootDir() + '/recycle_bin/'
|
||||
|
||||
##### ----- start ----- ###
|
||||
def getBodyApi(self):
|
||||
@@ -33,13 +33,13 @@ class files_api:
|
||||
line = request.form.get('line', '100')
|
||||
|
||||
if not os.path.exists(path):
|
||||
return public.returnJson(False, '文件不存在', (path,))
|
||||
return mw.returnJson(False, '文件不存在', (path,))
|
||||
|
||||
try:
|
||||
data = public.getNumLines(path, int(line))
|
||||
return public.returnJson(True, 'OK', data)
|
||||
data = mw.getNumLines(path, int(line))
|
||||
return mw.returnJson(True, 'OK', data)
|
||||
except Exception as ex:
|
||||
return public.returnJson(False, u'无法正确读取文件!' + str(ex))
|
||||
return mw.returnJson(False, u'无法正确读取文件!' + str(ex))
|
||||
|
||||
def saveBodyApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
@@ -67,21 +67,21 @@ class files_api:
|
||||
sfile = request.form.get('sfile', '').encode('utf-8')
|
||||
dfile = request.form.get('dfile', '').encode('utf-8')
|
||||
if not self.checkFileName(dfile):
|
||||
return public.returnJson(False, '文件名中不能包含特殊字符!')
|
||||
return mw.returnJson(False, '文件名中不能包含特殊字符!')
|
||||
if not os.path.exists(sfile):
|
||||
return public.returnJson(False, '指定文件不存在!')
|
||||
return mw.returnJson(False, '指定文件不存在!')
|
||||
|
||||
if not self.checkDir(sfile):
|
||||
return public.returnJson(False, 'FILE_DANGER')
|
||||
return mw.returnJson(False, 'FILE_DANGER')
|
||||
|
||||
import shutil
|
||||
try:
|
||||
shutil.move(sfile, dfile)
|
||||
msg = public.getInfo('移动文件或目录[{1}]到[{2}]成功!', (sfile, dfile,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, '移动文件或目录成功!')
|
||||
msg = mw.getInfo('移动文件或目录[{1}]到[{2}]成功!', (sfile, dfile,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, '移动文件或目录成功!')
|
||||
except:
|
||||
return public.returnJson(False, '移动文件或目录失败!')
|
||||
return mw.returnJson(False, '移动文件或目录失败!')
|
||||
|
||||
def deleteApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
@@ -90,12 +90,12 @@ class files_api:
|
||||
def fileAccessApi(self):
|
||||
filename = request.form.get('filename', '').encode('utf-8')
|
||||
data = self.getAccess(filename)
|
||||
return public.getJson(data)
|
||||
return mw.getJson(data)
|
||||
|
||||
def setFileAccessApi(self):
|
||||
|
||||
if public.isAppleSystem():
|
||||
return public.returnJson(True, '开发机不设置!')
|
||||
if mw.isAppleSystem():
|
||||
return mw.returnJson(True, '开发机不设置!')
|
||||
|
||||
filename = request.form.get('filename', '').encode('utf-8')
|
||||
user = request.form.get('user', '').encode('utf-8')
|
||||
@@ -103,30 +103,30 @@ class files_api:
|
||||
sall = '-R'
|
||||
try:
|
||||
if not self.checkDir(filename):
|
||||
return public.returnJson(False, '请不要花样作死')
|
||||
return mw.returnJson(False, '请不要花样作死')
|
||||
|
||||
if not os.path.exists(filename):
|
||||
return public.returnJson(False, '指定文件不存在!')
|
||||
return mw.returnJson(False, '指定文件不存在!')
|
||||
|
||||
os.system('chmod ' + sall + ' ' + access + " '" + filename + "'")
|
||||
os.system('chown ' + sall + ' ' + user +
|
||||
':' + user + " '" + filename + "'")
|
||||
msg = public.getInfo(
|
||||
msg = mw.getInfo(
|
||||
'设置[{1}]权限为[{2}]所有者为[{3}]', (filename, access, user,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, '设置成功!')
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, '设置成功!')
|
||||
except:
|
||||
return public.returnJson(False, '设置失败!')
|
||||
return mw.returnJson(False, '设置失败!')
|
||||
|
||||
def getDirSizeApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
tmp = self.getDirSize(path)
|
||||
return public.returnJson(True, tmp[0].split()[0])
|
||||
return mw.returnJson(True, tmp[0].split()[0])
|
||||
|
||||
def getDirApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
if not os.path.exists(path):
|
||||
path = public.getRootDir() + "/wwwroot"
|
||||
path = mw.getRootDir() + "/wwwroot"
|
||||
search = request.args.get('search', '').strip().lower()
|
||||
page = request.args.get('p', '1').strip().lower()
|
||||
row = request.args.get('showRow', '10')
|
||||
@@ -140,35 +140,35 @@ class files_api:
|
||||
file = request.form.get('path', '').encode('utf-8')
|
||||
try:
|
||||
if not self.checkFileName(file):
|
||||
return public.returnJson(False, '文件名中不能包含特殊字符!')
|
||||
return mw.returnJson(False, '文件名中不能包含特殊字符!')
|
||||
if os.path.exists(file):
|
||||
return public.returnJson(False, '指定文件已存在!')
|
||||
return mw.returnJson(False, '指定文件已存在!')
|
||||
_path = os.path.dirname(file)
|
||||
if not os.path.exists(_path):
|
||||
os.makedirs(_path)
|
||||
open(file, 'w+').close()
|
||||
self.setFileAccept(file)
|
||||
msg = public.getInfo('创建文件[{1}]成功!', (file,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, '文件创建成功!')
|
||||
msg = mw.getInfo('创建文件[{1}]成功!', (file,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, '文件创建成功!')
|
||||
except Exception as e:
|
||||
# print str(e)
|
||||
return public.returnJson(True, '文件创建失败!')
|
||||
return mw.returnJson(True, '文件创建失败!')
|
||||
|
||||
def createDirApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
try:
|
||||
if not self.checkFileName(path):
|
||||
return public.returnJson(False, '目录名中不能包含特殊字符!')
|
||||
return mw.returnJson(False, '目录名中不能包含特殊字符!')
|
||||
if os.path.exists(path):
|
||||
return public.returnJson(False, '指定目录已存在!')
|
||||
return mw.returnJson(False, '指定目录已存在!')
|
||||
os.makedirs(path)
|
||||
self.setFileAccept(path)
|
||||
msg = public.getInfo('创建目录[{1}]成功!', (path,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, '目录创建成功!')
|
||||
msg = mw.getInfo('创建目录[{1}]成功!', (path,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, '目录创建成功!')
|
||||
except Exception as e:
|
||||
return public.returnJson(False, '目录创建失败!')
|
||||
return mw.returnJson(False, '目录创建失败!')
|
||||
|
||||
def downloadFileApi(self):
|
||||
import db
|
||||
@@ -177,20 +177,20 @@ class files_api:
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
filename = request.form.get('filename', '').encode('utf-8')
|
||||
|
||||
isTask = public.getRootDir() + '/tmp/panelTask.pl'
|
||||
isTask = mw.getRootDir() + '/tmp/panelTask.pl'
|
||||
execstr = url + '|mw|' + path + '/' + filename
|
||||
public.M('tasks').add('name,type,status,addtime,execstr',
|
||||
('下载文件[' + filename + ']', 'download', '0', time.strftime('%Y-%m-%d %H:%M:%S'), execstr))
|
||||
public.writeFile(isTask, 'True')
|
||||
mw.M('tasks').add('name,type,status,addtime,execstr',
|
||||
('下载文件[' + filename + ']', 'download', '0', time.strftime('%Y-%m-%d %H:%M:%S'), execstr))
|
||||
mw.writeFile(isTask, 'True')
|
||||
# self.setFileAccept(path + '/' + filename)
|
||||
return public.returnJson(True, '已将下载任务添加到队列!')
|
||||
return mw.returnJson(True, '已将下载任务添加到队列!')
|
||||
|
||||
def removeTaskApi(self):
|
||||
mid = request.form.get('id', '').encode('utf-8')
|
||||
try:
|
||||
name = public.M('tasks').where('id=?', (mid,)).getField('name')
|
||||
status = public.M('tasks').where('id=?', (mid,)).getField('status')
|
||||
public.M('tasks').delete(mid)
|
||||
name = mw.M('tasks').where('id=?', (mid,)).getField('name')
|
||||
status = mw.M('tasks').where('id=?', (mid,)).getField('status')
|
||||
mw.M('tasks').delete(mid)
|
||||
if status == '-1':
|
||||
os.system(
|
||||
"kill `ps -ef |grep 'python panelSafe.pyc'|grep -v grep|grep -v panelExec|awk '{print $2}'`")
|
||||
@@ -208,12 +208,12 @@ done
|
||||
|
||||
os.system(
|
||||
'rm -f ' + name.replace('扫描目录[', '').replace(']', '') + '/scan.pl')
|
||||
isTask = public.getRootDir() + '/tmp/panelTask.pl'
|
||||
public.writeFile(isTask, 'True')
|
||||
isTask = mw.getRootDir() + '/tmp/panelTask.pl'
|
||||
mw.writeFile(isTask, 'True')
|
||||
os.system('/etc/init.d/mw start')
|
||||
except:
|
||||
os.system('/etc/init.d/mw start')
|
||||
return public.returnJson(True, '任务已删除!')
|
||||
return mw.returnJson(True, '任务已删除!')
|
||||
|
||||
# 上传文件
|
||||
def uploadFileApi(self):
|
||||
@@ -236,9 +236,9 @@ done
|
||||
os.chown(filename, p_stat.st_uid, p_stat.st_gid)
|
||||
os.chmod(filename, p_stat.st_mode)
|
||||
|
||||
msg = public.getInfo('上传文件[{1}] 到 [{2}]成功!', (filename, path))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnMsg(True, '上传成功!')
|
||||
msg = mw.getInfo('上传文件[{1}] 到 [{2}]成功!', (filename, path))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnMsg(True, '上传成功!')
|
||||
|
||||
def getRecycleBinApi(self):
|
||||
rPath = self.rPath
|
||||
@@ -274,7 +274,7 @@ done
|
||||
data['files'].append(tmp)
|
||||
except:
|
||||
continue
|
||||
return public.returnJson(True, 'OK', data)
|
||||
return mw.returnJson(True, 'OK', data)
|
||||
|
||||
# 回收站开关
|
||||
def recycleBinApi(self):
|
||||
@@ -284,12 +284,12 @@ done
|
||||
c = 'data/recycle_bin_db.pl'
|
||||
if os.path.exists(c):
|
||||
os.remove(c)
|
||||
public.writeLog('文件管理', '已关闭回收站功能!')
|
||||
return public.returnJson(True, '已关闭回收站功能!')
|
||||
mw.writeLog('文件管理', '已关闭回收站功能!')
|
||||
return mw.returnJson(True, '已关闭回收站功能!')
|
||||
else:
|
||||
public.writeFile(c, 'True')
|
||||
public.writeLog('文件管理', '已开启回收站功能!')
|
||||
return public.returnJson(True, '已开启回收站功能!')
|
||||
mw.writeFile(c, 'True')
|
||||
mw.writeLog('文件管理', '已开启回收站功能!')
|
||||
return mw.returnJson(True, '已开启回收站功能!')
|
||||
|
||||
def reRecycleBinApi(self):
|
||||
rPath = self.rPath
|
||||
@@ -298,13 +298,13 @@ done
|
||||
try:
|
||||
import shutil
|
||||
shutil.move(rPath + path, dFile)
|
||||
msg = public.getInfo('移动文件[{1}]到回收站成功!', (dFile,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, '恢复成功!')
|
||||
msg = mw.getInfo('移动文件[{1}]到回收站成功!', (dFile,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, '恢复成功!')
|
||||
except Exception as e:
|
||||
msg = public.getInfo('从回收站恢复[{1}]失败!', (dFile,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(False, '恢复失败!')
|
||||
msg = mw.getInfo('从回收站恢复[{1}]失败!', (dFile,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(False, '恢复失败!')
|
||||
|
||||
def delRecycleBinApi(self):
|
||||
rPath = self.rPath
|
||||
@@ -313,7 +313,7 @@ done
|
||||
dFile = path.split('_t_')[0]
|
||||
|
||||
if not self.checkDir(path):
|
||||
return public.returnJson(False, '敏感目录,请不要花样作死!')
|
||||
return mw.returnJson(False, '敏感目录,请不要花样作死!')
|
||||
|
||||
os.system('which chattr && chattr -R -i ' + rPath + path)
|
||||
if os.path.isdir(rPath + path):
|
||||
@@ -323,14 +323,14 @@ done
|
||||
os.remove(rPath + path)
|
||||
|
||||
tfile = path.replace('_mw_', '/').split('_t_')[0]
|
||||
msg = public.getInfo('已彻底从回收站删除{1}!', (tfile,))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, msg)
|
||||
msg = mw.getInfo('已彻底从回收站删除{1}!', (tfile,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, msg)
|
||||
|
||||
# 获取进度
|
||||
def getSpeedApi(self):
|
||||
data = public.getSpeed()
|
||||
return public.returnJson(True, '已清空回收站!', data)
|
||||
data = mw.getSpeed()
|
||||
return mw.returnJson(True, '已清空回收站!', data)
|
||||
|
||||
def closeRecycleBinApi(self):
|
||||
rPath = self.rPath
|
||||
@@ -341,19 +341,19 @@ done
|
||||
for name in rlist:
|
||||
i += 1
|
||||
path = rPath + name
|
||||
public.writeSpeed(name, i, l)
|
||||
mw.writeSpeed(name, i, l)
|
||||
if os.path.isdir(path):
|
||||
shutil.rmtree(path)
|
||||
else:
|
||||
os.remove(path)
|
||||
public.writeSpeed(None, 0, 0)
|
||||
public.writeLog('文件管理', '已清空回收站!')
|
||||
return public.returnJson(True, '已清空回收站!')
|
||||
mw.writeSpeed(None, 0, 0)
|
||||
mw.writeLog('文件管理', '已清空回收站!')
|
||||
return mw.returnJson(True, '已清空回收站!')
|
||||
|
||||
def deleteDirApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
if not os.path.exists(path):
|
||||
return public.returnJson(False, '指定文件不存在!')
|
||||
return mw.returnJson(False, '指定文件不存在!')
|
||||
|
||||
# 检查是否为.user.ini
|
||||
if path.find('.user.ini'):
|
||||
@@ -361,21 +361,21 @@ done
|
||||
try:
|
||||
if os.path.exists('data/recycle_bin.pl'):
|
||||
if self.mvRecycleBin(path):
|
||||
return public.returnJson(True, '已将文件移动到回收站!')
|
||||
public.execShell('rm -rf ' + path)
|
||||
public.writeLog('文件管理', '删除文件成功!', (path,))
|
||||
return public.returnJson(True, '删除文件成功!')
|
||||
return mw.returnJson(True, '已将文件移动到回收站!')
|
||||
mw.execShell('rm -rf ' + path)
|
||||
mw.writeLog('文件管理', '删除文件成功!', (path,))
|
||||
return mw.returnJson(True, '删除文件成功!')
|
||||
except:
|
||||
return public.returnJson(False, '删除文件失败!')
|
||||
return mw.returnJson(False, '删除文件失败!')
|
||||
|
||||
def closeLogsApi(self):
|
||||
logPath = public.getLogsDir()
|
||||
logPath = mw.getLogsDir()
|
||||
os.system('rm -f ' + logPath + '/*')
|
||||
os.system('kill -USR1 `cat ' + public.getServerDir() +
|
||||
os.system('kill -USR1 `cat ' + mw.getServerDir() +
|
||||
'openresty/nginx/logs/nginx.pid`')
|
||||
public.writeLog('文件管理', '网站日志已被清空!')
|
||||
mw.writeLog('文件管理', '网站日志已被清空!')
|
||||
tmp = self.getDirSize(logPath)
|
||||
return public.returnJson(True, tmp[0].split()[0])
|
||||
return mw.returnJson(True, tmp[0].split()[0])
|
||||
|
||||
def setBatchDataApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
@@ -391,21 +391,21 @@ done
|
||||
'user': user,
|
||||
'data': data
|
||||
}
|
||||
return public.returnJson(True, '标记成功,请在目标目录点击粘贴所有按钮!')
|
||||
return mw.returnJson(True, '标记成功,请在目标目录点击粘贴所有按钮!')
|
||||
elif stype == '3':
|
||||
for key in json.loads(data):
|
||||
try:
|
||||
key = key.encode('utf-8')
|
||||
filename = path + '/' + key
|
||||
if not self.checkDir(filename):
|
||||
return public.returnJson(False, 'FILE_DANGER')
|
||||
return mw.returnJson(False, 'FILE_DANGER')
|
||||
os.system('chmod -R ' + access + " '" + filename + "'")
|
||||
os.system('chown -R ' + user + ':' +
|
||||
user + " '" + filename + "'")
|
||||
except:
|
||||
continue
|
||||
public.writeLog('文件管理', '批量设置权限成功!')
|
||||
return public.returnJson(True, '批量设置权限成功!')
|
||||
mw.writeLog('文件管理', '批量设置权限成功!')
|
||||
return mw.returnJson(True, '批量设置权限成功!')
|
||||
else:
|
||||
import shutil
|
||||
isRecyle = os.path.exists('data/recycle_bin.pl')
|
||||
@@ -420,10 +420,10 @@ done
|
||||
continue
|
||||
|
||||
i += 1
|
||||
public.writeSpeed(key, i, l)
|
||||
mw.writeSpeed(key, i, l)
|
||||
if os.path.isdir(filename):
|
||||
if not self.checkDir(filename):
|
||||
return public.returnJson(False, '请不要花样作死!')
|
||||
return mw.returnJson(False, '请不要花样作死!')
|
||||
if isRecyle:
|
||||
self.mvRecycleBin(topath)
|
||||
else:
|
||||
@@ -437,9 +437,9 @@ done
|
||||
os.remove(filename)
|
||||
except:
|
||||
continue
|
||||
public.writeSpeed(None, 0, 0)
|
||||
public.writeLog('文件管理', '批量删除成功!')
|
||||
return public.returnJson(True, '批量删除成功!')
|
||||
mw.writeSpeed(None, 0, 0)
|
||||
mw.writeLog('文件管理', '批量删除成功!')
|
||||
return mw.returnJson(True, '批量删除成功!')
|
||||
|
||||
def checkExistsFilesApi(self):
|
||||
dfile = request.form.get('dfile', '').encode('utf-8')
|
||||
@@ -464,7 +464,7 @@ done
|
||||
tmp['size'] = os.path.getsize(filename)
|
||||
tmp['mtime'] = str(int(stat.st_mtime))
|
||||
data.append(tmp)
|
||||
return public.returnJson(True, 'ok', data)
|
||||
return mw.returnJson(True, 'ok', data)
|
||||
|
||||
def batchPasteApi(self):
|
||||
path = request.form.get('path', '').encode('utf-8')
|
||||
@@ -472,14 +472,14 @@ done
|
||||
# filename = request.form.get('filename', '').encode('utf-8')
|
||||
import shutil
|
||||
if not self.checkDir(path):
|
||||
return public.returnJson(False, '请不要花样作死!')
|
||||
return mw.returnJson(False, '请不要花样作死!')
|
||||
i = 0
|
||||
myfiles = json.loads(session['selected']['data'])
|
||||
l = len(myfiles)
|
||||
if stype == '1':
|
||||
for key in myfiles:
|
||||
i += 1
|
||||
public.writeSpeed(key, i, l)
|
||||
mw.writeSpeed(key, i, l)
|
||||
try:
|
||||
|
||||
sfile = session['selected'][
|
||||
@@ -494,14 +494,14 @@ done
|
||||
os.chown(dfile, stat.st_uid, stat.st_gid)
|
||||
except:
|
||||
continue
|
||||
msg = public.getInfo('从[{1}]批量复制到[{2}]成功',
|
||||
(session['selected']['path'], path,))
|
||||
public.writeLog('文件管理', msg)
|
||||
msg = mw.getInfo('从[{1}]批量复制到[{2}]成功',
|
||||
(session['selected']['path'], path,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
else:
|
||||
for key in myfiles:
|
||||
try:
|
||||
i += 1
|
||||
public.writeSpeed(key, i, l)
|
||||
mw.writeSpeed(key, i, l)
|
||||
|
||||
sfile = session['selected'][
|
||||
'path'] + '/' + key.encode('utf-8')
|
||||
@@ -510,21 +510,21 @@ done
|
||||
shutil.move(sfile, dfile)
|
||||
except:
|
||||
continue
|
||||
msg = public.getInfo('从[{1}]批量移动到[{2}]成功',
|
||||
(session['selected']['path'], path,))
|
||||
public.writeLog('文件管理', msg)
|
||||
public.writeSpeed(None, 0, 0)
|
||||
msg = mw.getInfo('从[{1}]批量移动到[{2}]成功',
|
||||
(session['selected']['path'], path,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
mw.writeSpeed(None, 0, 0)
|
||||
errorCount = len(myfiles) - i
|
||||
del(session['selected'])
|
||||
msg = public.getInfo('批量操作成功[{1}],失败[{2}]', (str(i), str(errorCount)))
|
||||
return public.returnJson(True, msg)
|
||||
msg = mw.getInfo('批量操作成功[{1}],失败[{2}]', (str(i), str(errorCount)))
|
||||
return mw.returnJson(True, msg)
|
||||
|
||||
def copyFileApi(self):
|
||||
sfile = request.form.get('sfile', '').encode('utf-8')
|
||||
dfile = request.form.get('dfile', '').encode('utf-8')
|
||||
|
||||
if not os.path.exists(sfile):
|
||||
return public.returnJson(False, '指定文件不存在!')
|
||||
return mw.returnJson(False, '指定文件不存在!')
|
||||
|
||||
if os.path.isdir(sfile):
|
||||
return self.copyDir(sfile, dfile)
|
||||
@@ -532,33 +532,33 @@ done
|
||||
import shutil
|
||||
try:
|
||||
shutil.copyfile(sfile, dfile)
|
||||
msg = public.getInfo('复制文件[{1}]到[{2}]成功!', (sfile, dfile,))
|
||||
public.writeLog('文件管理', msg)
|
||||
msg = mw.getInfo('复制文件[{1}]到[{2}]成功!', (sfile, dfile,))
|
||||
mw.writeLog('文件管理', msg)
|
||||
stat = os.stat(sfile)
|
||||
os.chown(dfile, stat.st_uid, stat.st_gid)
|
||||
return public.returnJson(True, '文件复制成功!')
|
||||
return mw.returnJson(True, '文件复制成功!')
|
||||
except:
|
||||
return public.returnJson(False, '文件复制失败!')
|
||||
return mw.returnJson(False, '文件复制失败!')
|
||||
|
||||
##### ----- end ----- ###
|
||||
|
||||
def copyDir(self, sfile, dfile):
|
||||
|
||||
if not os.path.exists(sfile):
|
||||
return public.returnJson(False, '指定目录不存在!')
|
||||
return mw.returnJson(False, '指定目录不存在!')
|
||||
|
||||
if os.path.exists(dfile):
|
||||
return public.returnJson(False, '指定目录已存在!')
|
||||
return mw.returnJson(False, '指定目录已存在!')
|
||||
import shutil
|
||||
try:
|
||||
shutil.copytree(sfile, dfile)
|
||||
stat = os.stat(sfile)
|
||||
os.chown(dfile, stat.st_uid, stat.st_gid)
|
||||
msg = public.getInfo('复制目录[{1}]到[{2}]成功!', (sfile, dfile))
|
||||
public.writeLog('文件管理', msg)
|
||||
return public.returnJson(True, '目录复制成功!')
|
||||
msg = mw.getInfo('复制目录[{1}]到[{2}]成功!', (sfile, dfile))
|
||||
mw.writeLog('文件管理', msg)
|
||||
return mw.returnJson(True, '目录复制成功!')
|
||||
except:
|
||||
return public.returnJson(False, '目录复制失败!')
|
||||
return mw.returnJson(False, '目录复制失败!')
|
||||
|
||||
# 检查敏感目录
|
||||
def checkDir(self, path):
|
||||
@@ -590,15 +590,15 @@ done
|
||||
'/selinux',
|
||||
'/www/server',
|
||||
'/www/server/data',
|
||||
public.getRootDir())
|
||||
mw.getRootDir())
|
||||
|
||||
return not path in nDirs
|
||||
|
||||
def getDirSize(self, path):
|
||||
if public.getOs() == 'darwin':
|
||||
tmp = public.execShell('du -sh ' + path)
|
||||
if mw.getOs() == 'darwin':
|
||||
tmp = mw.execShell('du -sh ' + path)
|
||||
else:
|
||||
tmp = public.execShell('du -sbh ' + path)
|
||||
tmp = mw.execShell('du -sbh ' + path)
|
||||
return tmp
|
||||
|
||||
def checkFileName(self, filename):
|
||||
@@ -613,8 +613,8 @@ done
|
||||
|
||||
def setFileAccept(self, filename):
|
||||
auth = 'www:www'
|
||||
if public.getOs() == 'darwin':
|
||||
user = public.execShell(
|
||||
if mw.getOs() == 'darwin':
|
||||
user = mw.execShell(
|
||||
"who | sed -n '2, 1p' |awk '{print $1}'")[0].strip()
|
||||
auth = user + ':staff'
|
||||
os.system('chown -R ' + auth + ' ' + filename)
|
||||
@@ -630,20 +630,20 @@ done
|
||||
try:
|
||||
import shutil
|
||||
shutil.move(path, rFile)
|
||||
public.writeLog('文件管理', public.getInfo(
|
||||
mw.writeLog('文件管理', mw.getInfo(
|
||||
'移动文件[{1}]到回收站成功!', (path)))
|
||||
return True
|
||||
except:
|
||||
public.writeLog('文件管理', public.getInfo(
|
||||
mw.writeLog('文件管理', mw.getInfo(
|
||||
'移动文件[{1}]到回收站失败!', (path)))
|
||||
return False
|
||||
|
||||
def getBody(self, path):
|
||||
if not os.path.exists(path):
|
||||
return public.returnJson(False, '文件不存在', (path,))
|
||||
return mw.returnJson(False, '文件不存在', (path,))
|
||||
|
||||
if os.path.getsize(path) > 2097152:
|
||||
return public.returnJson(False, u'不能在线编辑大于2MB的文件!')
|
||||
return mw.returnJson(False, u'不能在线编辑大于2MB的文件!')
|
||||
|
||||
fp = open(path, 'rb')
|
||||
data = {}
|
||||
@@ -690,13 +690,13 @@ done
|
||||
data['data'] = srcBody.decode('utf-8')
|
||||
data['encoding'] = u'utf-8'
|
||||
|
||||
return public.returnJson(True, 'OK', data)
|
||||
return mw.returnJson(True, 'OK', data)
|
||||
except Exception as ex:
|
||||
return public.returnJson(False, u'文件编码不被兼容,无法正确读取文件!' + str(ex))
|
||||
return mw.returnJson(False, u'文件编码不被兼容,无法正确读取文件!' + str(ex))
|
||||
|
||||
def saveBody(self, path, data, encoding='utf-8'):
|
||||
if not os.path.exists(path):
|
||||
return public.returnJson(False, '文件不存在')
|
||||
return mw.returnJson(False, '文件不存在')
|
||||
try:
|
||||
if encoding == 'ascii':
|
||||
encoding = 'utf-8'
|
||||
@@ -710,18 +710,18 @@ done
|
||||
fp.write(data)
|
||||
fp.close()
|
||||
|
||||
public.writeLog('文件管理', '文件保存成功', (path,))
|
||||
return public.returnJson(True, '文件保存成功')
|
||||
mw.writeLog('文件管理', '文件保存成功', (path,))
|
||||
return mw.returnJson(True, '文件保存成功')
|
||||
except Exception as ex:
|
||||
return public.returnJson(False, 'FILE_SAVE_ERR:' + str(ex))
|
||||
return mw.returnJson(False, 'FILE_SAVE_ERR:' + str(ex))
|
||||
|
||||
def zip(self, sfile, dfile, stype, path):
|
||||
if sfile.find(',') == -1:
|
||||
if not os.path.exists(path + '/' + sfile):
|
||||
return public.returnMsg(False, '指定文件不存在!')
|
||||
return mw.returnMsg(False, '指定文件不存在!')
|
||||
|
||||
try:
|
||||
tmps = public.getRunDir() + '/tmp/panelExec.log'
|
||||
tmps = mw.getRunDir() + '/tmp/panelExec.log'
|
||||
if stype == 'zip':
|
||||
os.system("cd '" + path + "' && zip '" + dfile +
|
||||
"' -r '" + sfile + "' > " + tmps + " 2>&1")
|
||||
@@ -734,15 +734,15 @@ done
|
||||
os.system("cd '" + path + "' && tar -zcvf '" +
|
||||
dfile + "' " + sfiles + " > " + tmps + " 2>&1")
|
||||
self.setFileAccept(dfile)
|
||||
public.writeLog("文件管理", '文件压缩成功!', (sfile, dfile))
|
||||
return public.returnJson(True, '文件压缩成功!')
|
||||
mw.writeLog("文件管理", '文件压缩成功!', (sfile, dfile))
|
||||
return mw.returnJson(True, '文件压缩成功!')
|
||||
except:
|
||||
return public.returnJson(False, '文件压缩失败!')
|
||||
return mw.returnJson(False, '文件压缩失败!')
|
||||
|
||||
def delete(self, path):
|
||||
|
||||
if not os.path.exists(path):
|
||||
return public.returnJson(False, '指定文件不存在!')
|
||||
return mw.returnJson(False, '指定文件不存在!')
|
||||
|
||||
# 检查是否为.user.ini
|
||||
if path.find('.user.ini') >= 0:
|
||||
@@ -751,13 +751,13 @@ done
|
||||
try:
|
||||
if os.path.exists('data/recycle_bin.pl'):
|
||||
if self.mvRecycleBin(path):
|
||||
return public.returnJson(True, '已将文件移动到回收站!')
|
||||
return mw.returnJson(True, '已将文件移动到回收站!')
|
||||
os.remove(path)
|
||||
public.writeLog('文件管理', public.getInfo(
|
||||
mw.writeLog('文件管理', mw.getInfo(
|
||||
'删除文件[{1}]成功!', (path)))
|
||||
return public.returnJson(True, '删除文件成功!')
|
||||
return mw.returnJson(True, '删除文件成功!')
|
||||
except:
|
||||
return public.returnJson(False, '删除文件失败!')
|
||||
return mw.returnJson(False, '删除文件失败!')
|
||||
|
||||
def getAccess(self, filename):
|
||||
data = {}
|
||||
@@ -792,7 +792,7 @@ done
|
||||
info['row'] = page_size
|
||||
info['p'] = page
|
||||
info['tojs'] = 'getFiles'
|
||||
pageObj = public.getPageObject(info, '1,2,3,4,5,6,7,8')
|
||||
pageObj = mw.getPageObject(info, '1,2,3,4,5,6,7,8')
|
||||
data['PAGE'] = pageObj[0]
|
||||
|
||||
i = 0
|
||||
@@ -840,4 +840,4 @@ done
|
||||
data['DIR'] = sorted(dirnames)
|
||||
data['FILES'] = sorted(filenames)
|
||||
data['PATH'] = path.replace('//', '/')
|
||||
return public.getJson(data)
|
||||
return mw.getJson(data)
|
||||
|
||||
Reference in New Issue
Block a user