自己在写的flask页面时,前端用的md,后端用的ue,官网上都是php、jsp、asp的接口,然而自己人生苦短,所以做了记录
from app.config.ueditor import Config
from app.service.uploader import Upload
Ueditor = Blueprint('Ueditor', __name__,
template_folder='templates')
def getFileList(config):
reData = []
files = os.listdir(config['path'])
for file in files:
file_n_path = os.path.join(config['path'], file)
if os.path.isfile(file_n_path):
fileType = file.split('.')[-1]
if '.{}'.format(fileType) in config['allow']:
reData.append(config['Prefix'].format(file=file))
else:
pass
return reData
@Ueditor.route('/controller.do', methods=['get', 'post'])
# @_isLogin
def uediter_do():
try:
action = request.args.get('action')
# action = request.args.get('action') if request.method == 'GET' else request.form.get('action')
noCache = request.args.get('noCache') if request.method == 'GET' else request.form.get('noCache')
print(action)
if action == 'config':
print(noCache)
return Response(json.dumps(Config), content_type='application/json')
elif action in ['uploadimage', 'uploadfile', 'uploadvideo']:
if action == 'uploadimage':
# 上传图片
field_name = Config['imageFieldName']
config = {
"pathFormat": Config['imagePathFormat'], # 文件保存目录
"fileFormat": Config['imageFileFormat'], # 文件名
"maxSize": Config['imageMaxSize'], # 上传大小限制
"allowFiles": Config['imageAllowFiles'], # 上传图片格式
"urlPrefix": Config['imageUrlPrefix'] # 图片访问路径
}
elif action == 'uploadvideo':
field_name = Config['videoFieldName']
config = {
"pathFormat": Config['videoPathFormat'], # 文件保存目录
"fileFormat": Config['videoFileFormat'], # 文件名
"urlPrefix": Config['videoUrlPrefix'], # 图片访问路径
"maxSize": Config['videoMaxSize'],
"allowFiles": Config['videoAllowFiles']
}
else:
field_name = Config['fileFieldName']
config = {
"pathFormat": Config['filePathFormat'],
"fileFormat": Config['fileFileFormat'], # 文件名
"urlPrefix": Config['fileUrlPrefix'], # 图片访问路径
"maxSize": Config['fileMaxSize'],
"allowFiles": Config['fileAllowFiles']
}
# 判断文件是否真实
if field_name in request.files:
# 获取文件
file = request.files.get(field_name)
# 执行上传
upload_obj = Upload(file, config, config['pathFormat'])
result = upload_obj.get_file_info()
return jsonify(result)
else:
return jsonify(state='文件错误')
elif action == 'uploadscrawl':
# 上传涂鸦
config = {
"pathFormat": Config['scrawlPathFormat'],
"maxSize": Config['scrawlMaxSize'],
# "allowFiles": CONFIG['scrawlAllowFiles'],
"oriName": "scrawl.png",
"fileFormat": Config['scrawlFileFormat'], # 文件名
"urlPrefix": Config['scrawlUrlPrefix'], # 图片访问路径
}
field_name = Config['scrawlFieldName']
if field_name in request.form:
uploader = Upload(request.form[field_name], config, config['pathFormat'], 'base64')
result = uploader.get_file_info()
return jsonify(result)
else:
return jsonify(state='上传接口错误')
elif action == 'catchimage':
# 抓取远程文件
# 抓取远程文件和截图没有写,截图工具需要下载,没必要
start = request.args.get('start') if request.method == 'GET' else request.form.get('start')
size = request.args.get('size') if request.method == 'GET' else request.form.get('size')
return jsonify(list=[], start="{}".format(start), state="no match file", total=0)
elif action in ['listfile', 'listimage']:
if action == 'listfile':
# 列出文件
config = {'path': Config['fileManagerListPath'],
'Prefix': Config['fileManagerUrlPrefix'],
'allow': Config['fileManagerAllowFiles']}
else:
# 列出图片
config = {'path': Config['imageManagerListPath'],
'Prefix': Config['imageManagerUrlPrefix'],
'allow': Config['imageManagerAllowFiles']}
return jsonify(list=getFileList(config), start="0", state="no match file", total=0)
else:
return jsonify(state='请求地址出错')
except Exception as e:
print(e)
return jsonify(state='error:{}'.format(e))
因为截图需要安插件,抓取远程文件没找到该功能,所以没写
参考了托小尼https://www.diandian100.cn的部分代码,进行了优化
更多代码详见https://gitee.com/heanny/codes/tm7w5al18qvdoehjngi2931