如何同时上传和下载文件
我正在尝试写一个小的Tornado服务器,让用户可以通过HTML的form
上传文件,然后把链接给其他人,这样他们就可以在文件上传的同时下载这个文件。
目前我的想法是,data
应该是一个由上传生成的某种Iterator
,然后下载的时候再去读取它,但现在的问题是,整个文件都被写入到data
里面了。
我看到有一些人讨论过Tornado的分块文件上传,但找不到相关的参考页面。
import os
import tornado.web
import tornado.ioloop
settings = {'debug': True}
data = None
# assumes an <input type="file" name="file" />
class ShareHandler(tornado.web.RequestHandler):
def post(self, uri):
data = self.request.files['file'][0]['body']
class FetchHandler(tornado.web.RequestHandler):
def get(self, uri):
for line in data:
self.write(line)
handlers = [
(r'/share/(.*)', ShareHandler),
(r'/fetch/(.*)', FetchHandler),
]
application = tornado.web.Application(handlers, **settings)
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
1 个回答
0
Tornado不支持流式上传。这是关于它最常被问到的问题之一。=) 维护者正在积极实现这个功能,可以在这里关注进展: