Обработчик торнадо считает, что POST отсутствует аргумент, когда Firebug показывает отправляемый аргумент - PullRequest
1 голос
/ 19 июня 2010

У меня есть простая форма с использованием метода 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 Ответ

4 голосов
/ 20 июня 2010

Для загрузки файлов вы должны использовать self.request.files вместо self.get_argument().

...