def Base64(params={}): # 参数 param = Util.ArrayMerge( { 'path': 'upload/', #上传目录 'base64': '', #文件内容 'filename': '', #文件名 'ext': 'png', #后缀 }, params) # 内容 base64 = param['base64'] # 否有类型 ct = Util.Explode(',', param['base64']) if len(ct) > 1: param['ext'] = Base64.GetExt(ct[0]) base64 = ct[1] # 创建目录 FileEo.Root = Env.root_dir if not FileEo.Mkdir(param['path']): print('[Upload] Mkdir:', '创建目录失败!') return '' # 文件名 filename = Upload.GetFileName( ) + '.' + param['ext'] if not param['filename'] else param['filename'] if not FileEo.Writer(param['path'] + filename, Base64.Decode(base64)): print('[Upload] Writer:', '保存文件失败!') return '' return filename
def File(file, params={}): # 参数 param = Util.ArrayMerge( { 'path': 'upload/', #上传目录 'filename': '', #文件名 'bind': [ 'svg', 'jpg', 'jpeg', 'png', 'gif', 'mov', 'mp4', 'wav', 'mp3' ], #允许格式 }, params) # 限制格式 ext = FileEo.GetExt(file.filename) if param['bind']: if ext not in param['bind']: print('只支持%s格式!' % (','.join(param['bind']))) return '' # 是否重命名 param['filename'] = file.filename if not param[ 'filename'] else param['filename'] + '.' + ext # 创建目录 FileEo.Root = Env.root_dir if not FileEo.Mkdir(param['path']): print('[Upload] Mkdir:', '创建目录失败!') return '' # 保存文件 if not FileEo.Upload(file, param['path'] + param['filename']): print('[Upload] Upload:', '保存文件失败!') return '' return param['filename']
def HtmlImgClear(html: str, dir: str): # 全部图片 imgs = Upload.GetHtmlFile(html) # 清理图片 FileEo.Root = Env.root_dir all = FileEo.AllFile(dir) for val in all: if val not in imgs: FileEo.RemoveAll(dir + val) return True
def Upimg(self): # 验证 token = self.Post('token') msg = AdminToken.Verify(token, request.path) if msg != '': return self.GetJSON({'code': 4001, 'msg': msg}) # 参数 name = self.Post('name') base64 = self.Post('base64') if not base64: return self.GetJSON({'code': 4000, 'msg': '参数错误!'}) # 类型 if name != 'logo' and name != 'login_bg': return self.GetJSON({'code': 4000, 'msg': '类型错误!'}) # 上传 img = Upload.Base64({'path': self.ImgDir, 'base64': base64}) if not img: return self.GetJSON({'code': 5000, 'msg': '上传失败!'}) # 数据 m = SysConfigM() m.Columns('val') m.Where('name=%s', name) imgData = m.FindFirst() m.Set({'val': self.ImgDir + img}) m.Where('name=%s', name) if not m.Update(): return self.GetJSON({'code': 5000, 'msg': '上传失败!'}) # 清理 rmImg = imgData['val'] FileEo.RemoveAll(rmImg) # 返回 return self.GetJSON({ 'code': 0, 'msg': '成功', 'img': Data.Img(self.ImgDir + img) })
def Upimg(self): # 验证 token = self.Post('token') msg = AdminToken.Verify(token, request.path) if msg != '': return self.GetJSON({'code': 4001, 'msg': msg}) tData = AdminToken.Token(token) # 参数 base64 = self.Post('base64') if not base64: return self.GetJSON({'code': 4000, 'msg': '参数错误!'}) # 上传 img = Upload.Base64({'path': self.ImgDir, 'base64': base64}) if not img: return self.GetJSON({'code': 5000, 'msg': '上传失败!'}) # 数据 model = UserInfoM() model.Columns('img') model.Where('uid=%s', tData['uid']) imgData = model.FindFirst() model.Set({'img': self.ImgDir + img}) model.Where('uid=%s', tData['uid']) if not model.Update(): return self.GetJSON({'code': 5000, 'msg': '上传失败!'}) # 清理 rmImg = imgData['img'] FileEo.RemoveAll(rmImg) # 返回 return self.GetJSON({ 'code': 0, 'msg': '成功', 'img': Data.Img(self.ImgDir + img) })
def Qrcode(self, name: str): text: str = '' if name == 'docs': text = 'https://webmis.vip/' elif name == 'demo': text = 'https://demo-app.webmis.vip/' elif name == 'wechat': text = 'http://weixin.qq.com/r/mC1YQK3EDPBzrekj93iK' elif name == 'server1': text = 'https://u.wechat.com/MNFMyg4xN7d6ihWrfoWD7So' elif name == 'server2': text = 'https://u.wechat.com/MC35ApmM-JB7K6cJD6CaYJo' # 创建目录 path = 'upload/qrcode/' FileEo.Root = Env.root_dir if not FileEo.Mkdir(path): return # 是否生成 file = path + name + '.png' if not FileEo.IsFile(): ct = Qrcode.Create({'text': text}) FileEo.Writer(file, ct) # 返回 return send_file(Env.root_dir + file, mimetype='image/png')
def Down(self): # 验证 token = self.Post('token') msg = AdminToken.Verify(token, request.path) if msg != '': return self.GetJSON({'code': 4001, 'msg': msg}) # 参数 path = self.Post('path') filename = self.Post('filename') if not path or not filename: return self.GetJSON({'code': 4000, 'msg': '参数错误!'}) # 返回 FileEo.Root = Env.root_dir + self.__dirRoot return FileEo.Bytes(path + filename)
def Mkdir(self): # 验证 token = self.Post('token') msg = AdminToken.Verify(token, request.path) if msg != '': return self.GetJSON({'code': 4001, 'msg': msg}) # 参数 path = self.Post('path') name = self.Post('name') if not path or not name: return self.GetJSON({'code': 4000, 'msg': '参数错误!'}) # 数据 FileEo.Root = Env.root_dir + self.__dirRoot if not FileEo.Mkdir(path + name): return self.GetJSON({'code': 5000, 'msg': '新建文件夹失败!'}) # 返回 return self.GetJSON({'code': 0, 'msg': '成功'})
def Remove(self): # 验证 token = self.Post('token') msg = AdminToken.Verify(token, request.path) if msg != '': return self.GetJSON({'code': 4001, 'msg': msg}) # 参数 path = self.Post('path') data = self.Post('data') if not path or not data: return self.GetJSON({'code': 4000, 'msg': '参数错误!'}) # 数据 FileEo.Root = Env.root_dir + self.__dirRoot files = Util.JsonDecode(data) for val in files: FileEo.RemoveAll(path + val) # 返回 return self.GetJSON({'code': 0, 'msg': '成功'})
def List(self): # 验证 token = self.Post('token') msg = AdminToken.Verify(token, request.path) if msg != '': return self.GetJSON({'code': 4001, 'msg': msg}) # 参数 path = self.Post('path') if not path: return self.GetJSON({'code': 4000, 'msg': '参数错误!'}) # 数据 FileEo.Root = Env.root_dir + self.__dirRoot list = FileEo.List(path) # 返回 return self.GetJSON({ 'code': 0, 'msg': '成功', 'url': Env.base_url + self.__dirRoot, 'data': list })