2010-06-18 3 views
1

У меня простая форма с использованием метода POST, состоящего из текстового поля и файла. После удара представить, что я могу увидеть пост в Firebug следующим образом:Tornado handler думает, что POST отсутствует аргумент, когда Firebug показывает отправленный аргумент

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

Обработчик Торнадо, который получает это выглядит следующим образом:

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 

I Я не совсем уверен, что я здесь делаю неправильно. Правильно ли я считаю, что «аргумент» означает атрибут «имя» элемента ввода? Как заставить обработчик увидеть аргумент?

Спасибо за вашу помощь, я боролся с этим в течение часа и должен признать, что я в тупике!

ответ

4

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