上传文件这块可以分为两大类,第一类是通过form表单验证进行上传,还有一类就是通过ajax上传。
1 2 "en"> 3 4 "UTF-8"> 514 15 16Title 6 7 8form文件上传
9
1 2 "en"> 3 4 "UTF-8"> 5Title 6 7 8文件上传,xml方式提交
9 "file" id="img"/> 10 "button" onclick="UpdateFile();" value="上传"> 11 12 24 25 26 27
1 2 "en"> 3 4 "UTF-8"> 5Title 6 7 8 9文件上传,ajax方式提交
10 "file" id="img"/> 11 "button" onclick="UpdateFile();" value="上传"> 12 13 33 34 35 36
1 2 "en"> 3 4 "UTF-8"> 522 23 35 36Title 6 7 12 13 14文件上传,iframe方式
15
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 import tornado.ioloop 4 import tornado.web 5 6 7 class IndexHandler(tornado.web.RequestHandler): 8 def get(self): 9 self.render('index.html') 10 11 def post(self, *args, **kwargs): 12 file_metas = self.request.files["update_file"] #获取文件信息 13 for meta in file_metas: 14 file_name = meta['filename'] #获取它的文件名 15 import os 16 with open(os.path.join("static", "img", file_name), 'wb') as up: #打开本地一个文件 17 up.write(meta['body']) #body就是文件内容,把它写到本地 18 19 class Index2Handler(tornado.web.RequestHandler): 20 def get(self): 21 self.render('index2.html') 22 23 def post(self, *args, **kwargs): 24 file_metas = self.request.files["update_file"] #获取文件信息 25 for meta in file_metas: 26 file_name = meta['filename'] #获取它的文件名 27 import os 28 with open(os.path.join("static", "img", file_name), 'wb') as up: #打开本地一个文件 29 up.write(meta['body']) #body就是文件内容,把它写到本地 30 31 class Index3Handler(tornado.web.RequestHandler): 32 def get(self): 33 self.render('index3.html') 34 35 def post(self, *args, **kwargs): 36 file_metas = self.request.files["update_file"] #获取文件信息 37 for meta in file_metas: 38 file_name = meta['filename'] #获取它的文件名 39 import os 40 with open(os.path.join("static", "img", file_name), 'wb') as up: #打开本地一个文件 41 up.write(meta['body']) #body就是文件内容,把它写到本地 42 43 class Index4Handler(tornado.web.RequestHandler): 44 def get(self): 45 self.render('index4.html') 46 47 def post(self, *args, **kwargs): 48 file_metas = self.request.files["update_file"] #获取文件信息 49 for meta in file_metas: 50 file_name = meta['filename'] #获取它的文件名 51 import os 52 with open(os.path.join("static", "img", file_name), 'wb') as up: #打开本地一个文件 53 up.write(meta['body']) #body就是文件内容,把它写到本地 54 55 56 57 settings = { 58 'template_path': 'views', #视图模板路径 59 'static_path': 'static', #静态文件路径 60 } 61 #路由映射,路由系统 62 def make_app(): 63 return tornado.web.Application([ 64 (r"/index", IndexHandler), 65 (r"/index2", Index2Handler), 66 (r"/index3", Index3Handler), 67 (r"/index4", Index4Handler), 68 ], **settings) 69 70 if __name__ == "__main__": 71 app = make_app() 72 app.listen(8888) 73 tornado.ioloop.IOLoop.current().start()