- tornado是python的web框架,这里简单记录下利用tornado怎么实现文件的上传,其中web.py上传功能类似。
直接用代码说明:
代码来自:http://my.oschina.net/chenlei123/blog/127563
#!/usr/bin/python #-*- encoding:utf-8 -*- import tornado.ioloop import tornado.web import os class UploadFileHandler(tornado.web.RequestHandler): def get(self): self.write(''' <html> <head>
<title>Upload File</title>
</head> <body> <form action='file' enctype="multipart/form-data" method='post'> <input type='file' name='file'/><br/> <input type='submit' value='submit'/> </form> </body> </html> ''') def post(self): upload_path=os.path.join(os.path.dirname(__file__),'files') #文件的暂存路径 file_metas=self.request.files['file'] #提取表单中‘name’为‘file’的文件元数据 for meta in file_metas: filename=meta['filename'] filepath=os.path.join(upload_path,filename) with open(filepath,'wb') as up: #有些文件需要已二进制的形式存储,实际中可以更改 up.write(meta['body']) self.write('finished!') app=tornado.web.Application([ (r'/file',UploadFileHandler), ]) if __name__ == '__main__': app.listen(3000) tornado.ioloop.IOLoop.instance().start()
其中注意利用form上传的html代码的写法。另外就是tornado获取post数据的方法。
- web前端开发中比较有用的资源bootscrap: http://www.bootcss.com/
- bootscrap中分页插件: http://bootstrappaginator.org/#minimum-configuration
- js脚本构造form(表单)提交的类
转自:http://runtool.blog.163.com/blog/static/183144445201272053421155/
function FormManager(url,method){ //表单提交管理 if(method.toLowerCase()!="post" && method.toLowerCase()!="get"){ //method字段设置不正确 alert("error:set method get or post!"); return false; } this.form=document.createElement("form"); //创建提交表单 this.form.method=method; this.form.action=url; this.put=function(key,value){ //添加参数队列 var myinput=document.createElement("input"); myinput.type="hidden"; myinput.name=key; myinput.value=value; this.form.appendChild(myinput); } this.submit=function(){ //提交表单 alert(this.form.innerHTML); document.body.appendChild(this.form); this.form.submit(); } //使用 var url="http://www.swu.edu.cn"; var method="post1"; var myform=new FormManager(url,method); myform.put("name","handonghai"); myform.put("sex","boy"); myform.put("age","23"); myform.submit();