tornado + python 文件上传

import tornado.ioloop
import tornado.web
import os

size = 128, 128
static_files_path = r'./data/web/upload/'

def endWith(s,*endstring):
        array = map(s.endswith,endstring)
        if True in array:
                return True
        else:
                return False

class UploadFileHandler(tornado.web.RequestHandler):
    def get(self):
        taskID=self.get_argument('taskID')
        taskDir = os.path.abspath(static_files_path+taskID+'/')
        isExists=os.path.exists(taskDir)
        imageList=[]
        if isExists:
            filenames=os.listdir(taskDir)
            for name in filenames:
                if endWith(name,'png','gif','jpeg','jpg'):
                    imageList.append(name)


        self.render("upload-file.html",taskID=taskID, static_files_path=static_files_path,items=imageList)

    def post(self):
        taskID=self.get_argument('taskID')
        taskDir = os.path.abspath(static_files_path+taskID+'/')
        isExists=os.path.exists(taskDir)
        if not isExists:
            os.makedirs(taskDir)
            os.makedirs(taskDir+'/s_img')
            print taskDir+u' is Created'



        file_dict_list = self.request.files['file']
        for file_dict in file_dict_list:
            filename = file_dict["filename"]
            f = open(taskDir+'/'+filename, "wb")
            f.write(file_dict["body"])
            f.close()
        if(self.get_argument('submit')=='web'):
            self.redirect('./upload?taskID='+taskID)
        else:
            self.write('{"status":"ok"}')

settings = {
    "static_path": static_files_path,
}

application = tornado.web.Application([
    (r"/upload", UploadFileHandler),
], **settings)

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值