Beispiel #1
0
 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')
Beispiel #2
0
 def GET(self):
     self.crumb.append('设置', '/settings')
     self.crumb.append('上传头像')
     return render.avatar('上传头像', self.user, self.crumb.output())