1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- """
- demeter web page
- name:upload.py
- author:rabin
- """
- from __load__ import *
- from datetime import *
- import os
- import uuid
- #from PIL import Image
- class upload_path(Load):
- @Web.auth
- @Web.setting
- def post(self, *args, **kwargs):
- url = self.request.protocol + "://" + self.request.host
- url = 'http://admin.nongxiaohe.com'
- file_metas = self.request.files["file"]
- #crop = self.input('crop', 1)
- crop = False
- # print(file_metas)
- day = str(date.today())
- day = day.split('-')
- for meta in file_metas:
- #meta['filename']
- file_name = str(uuid.uuid5(uuid.uuid1(), 'file'))
- file_path = day[0] + '/' + day[1] + '/' + day[2]
- file_path = File.mkdirs(os.path.join(Demeter.path, 'runtime','upload', file_path)) + '/' + Demeter.md5(file_name) + '.jpg'
- with open(file_path, 'wb') as up:
- up.write(meta['body'])
- if crop:
- #裁图类型,暂时居中裁图
- file_path = cropImage(file_path)
- self.out('yes', {'src':url + file_path.replace(Demeter.path + 'runtime', '')})
- #file = url + file_path.replace(Demeter.path + 'runtime', '')
- #self.write({'state':True,'file_path':file, 'src':file})
- def cropImage(file):
- img = Image.open(file)
- width = img.size[0]
- height = img.size[1]
- size = 0
- x = 0
- y = 0
- if width == height:
- return file
- elif width < height:
- size = width
- x = 0
- y = (height-width)/2
- else:
- size = height
- x = (width-height)/2
- y = 0
- #img.thumbnail((500, 500))
- crop = img.crop((x, y, size+x, size+y))
- file = file + '_crop_center.jpg'
- crop.save(file)
- return file
|