def POST(self): import cgi import os cgi.maxlen = 2 * 1024 * 1024 # 2MB try: x = web.input(avatar={}) except ValueError: return render.avatar('上传头像', self.user, self.crumb.output(), ' <<超过大小限制') if 'avatar' in x: #客户端为windows时注意 filepath=x.avatar.filename.replace('\\','/') #获取文件名 filename=filepath.split('/')[-1] #获取后缀 if filename == '': ext = '' else: ext = filename.split('.', 1)[1].lower() ext_allow = ('jpg', 'png', 'gif', 'jpeg') #判断文件后缀名 if ext in ext_allow: #要上传的路径 filedir = 'static/avatar/tmp/' try: os.makedirs('static/avatar/tmp') except: pass filename = str(session.user_id) +'.'+ext if os.path.exists(filedir+filename): os.remove(filedir+filename) fout = open(filedir + filename, 'wb') fout.write(x.avatar.file.read()) fout.close() user_model().set_avatar(filename, self.user.id) error = False else: message = ' <<请上传指定格式文件' error = True if error: return render.avatar('上传头像', self.user, self.crumb.output(), message) else: raise web.SeeOther('/settings/avatar')
def GET(self): self.crumb.append('设置', '/settings') self.crumb.append('上传头像') return render.avatar('上传头像', self.user, self.crumb.output())