controls.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env python
  2. # -*- coding=UTF-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: controls.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-06-25 00:54:15 (CST)
  9. # Last Update:星期六 2016-6-25 10:39:1 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import request
  14. from flask_login import current_user
  15. from werkzeug import secure_filename
  16. from maple import db, app
  17. from time import time
  18. from random import randint
  19. from PIL import Image
  20. import os
  21. class UploadModel(object):
  22. def avatar(form):
  23. file = request.files[form.avatar.name]
  24. filename = secure_filename(file.filename)
  25. filename = current_user.username + '-' + str(int(time())) + str(
  26. randint(1000, 9999))
  27. img = Image.open(file)
  28. size = 150, 150
  29. img.thumbnail(size, Image.ANTIALIAS)
  30. avatar_path = os.path.join(app.static_folder,
  31. app.config['AVATAR_FOLDER'])
  32. avatar = os.path.join(avatar_path, filename + '.png')
  33. if not os.path.exists(avatar_path):
  34. os.mkdir(avatar_path)
  35. img.save(avatar)
  36. img.close()
  37. infor = current_user.infor
  38. ef = os.path.join(avatar_path, infor.avatar)
  39. if os.path.exists(ef):
  40. os.remove(ef)
  41. # file.save(os.path.join(app.static_folder, filename + '.png'))
  42. infor.avatar = filename + '.png'
  43. db.session.commit()