def handle(cls, user, club, file):
filename = os.urandom(8).encode('hex')
temppath = os.path.join('/tmp', filename)
file.save(temppath)
try:
# Don't use mimetypes.guess_type(temppath) -- Faked extensions
mime = magic.from_file(temppath, mime=True)
if mime not in cls._mimedict:
raise UploadNotSupported
filename = filename + cls._mimedict[mime]
permpath = cls.mk_internal_path(filename)
permdir = os.path.dirname(permpath)
if not os.path.isdir(permdir):
os.makedirs(permdir, 0o755)
# resize to 600, 450
cls._thumb(temppath, permpath)
fs.watch(permpath)
finally:
os.remove(temppath)
obj = cls.new()
obj.club = club
obj.uploader = user
obj._location = filename
obj.mime = mime
return obj.create()
评论列表
文章目录