Tornado Handler cree que Post le faltan argumentos cuando Firebug muestra el argumento que se envía

StackOverflow https://stackoverflow.com/questions/3073462

  •  28-09-2019
  •  | 
  •  

Pregunta

Tengo un formulario simple usando un método de publicación, que consiste en un cuadro de texto y un archivo. Después de presionar enviar, puedo ver la publicación en Firebug de la siguiente manera:

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

El controlador de tornados que lo recibe parece:

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

Pero el manejador de Tornado regresa:

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

No estoy muy seguro de lo que estoy haciendo mal aquí. ¿Estoy en lo correcto al pensar 'argumento' significa el atributo de 'nombre' de un elemento de entrada? ¿Cómo puedo hacer que el controlador vea el argumento?

Gracias por tu ayuda, he estado luchando con esto durante una hora y debo admitir que estoy perplejo.

¿Fue útil?

Solución

Para las cargas de archivos, debe usar self.request.files en vez de self.get_argument().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top