文件上传验证Tornado Python

时间:2014-10-08 18:02:30

标签: python forms file upload tornado

我发现这个例子是使用Tornado Python Web框架将文件上传到服务器,但事实是没有一个例子开发了错误处理。如果我提交没有附加文件的表单,则会返回500错误。我们的想法是将上传文件字段设置为可选的非强制性。

https://github.com/vamsiikrishna/tornado-upload

http://technobeans.wordpress.com/2012/09/17/tornado-file-uploads/

你可以帮我一把吗?

我想这可能有一个简单的解决方案,但我是一个新手。

提前致谢!

1 个答案:

答案 0 :(得分:0)

谷歌我找到了这个解决方案:

import tornado.ioloop
import tornado.web

UPLOAD_FILE_PATH = '/path/to/files/'

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        args = dict(username = 'visitor')
        self.render('home.html', **args)

class UploadHandler(tornado.web.RequestHandler):
    def post(self):
        username = self.get_argument('username', 'anonymous')
        if self.request.files.get('uploadfile', None):
            uploadFile = self.request.files['uploadfile'][0]
            filename = uploadFile['filename']
            fileObj = open(UPLOAD_FILE_PATH+username+filename, 'wb')
            fileObj.write(uploadFile['body'])
            self.redirect('/')

application=tornado.web.Application([(r'/',MainHandler),('/upload', UploadHandler) ],
template_path = 'templates',
debug = True
)

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

思考是在文件请求之前放置的以下条件:if self.request.files.get('uploadfile', None):