Tornado 处理器认为 POST 缺少参数,而 Firebug 显示参数已发送
我有一个简单的表单,使用的是POST方法,里面有一个文本框和一个文件上传功能。点击提交后,我在Firebug中可以看到POST请求的内容,如下所示:
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
我不太确定我哪里做错了。我是不是可以理解为“argument”指的是输入元素的“name”属性?我该怎么让处理器识别这个参数呢?
谢谢你的帮助,我已经为这个问题挣扎了一个小时,必须承认我有点困惑了!
1 个回答
4
在上传文件的时候,你应该使用 self.request.files
,而不是 self.get_argument()
。