当Firebug显示正在发送的参数时,Tornado处理程序认为POST缺少参数

时间:2010-06-18 22:28:34

标签: python post handler tornado

我有一个使用POST方法的简单表单,由一个文本框和一个文件组成。点击提交后,我可以看到Firebug中的帖子如下:

Parts       multipart/form-data
posttext    Some text
image   BlahJFIFBlahExifBlahPhotoshopBlahBinaryStuff etc...

接收它的Tornado处理程序如下所示:

class NewPostHandler(BaseHandler, MessageMixin):
    @tornado.web.authenticated 
    def post(self):
        message = {
            'posttext':self.get_argument('posttext'), 
            'image':self.get_argument('image'),
            etc          

但是Tornado的处理程序返回:

[W 100618 23:07:32 web:775] 404 POST /a/message/new (127.0.0.1): Missing argument image

我不太确定我在这里做错了什么。我认为“参数”是指输入元素的“名称”属性吗?如何让处理程序看到参数?

感谢您的帮助,我一直在为此奋斗一小时,并且必须承认我很难过!

1 个答案:

答案 0 :(得分:4)

对于文件上传,您应使用self.request.files代替self.get_argument()