2015-09-05 30 views
5

I AMD nowy Tornado ram i próbuje zrobić prosty formularz, aby przesłać zdjęcia:Jak uzyskać dane wejściowe POST w Tornado?

<form method="post" action="/uploads/{{uid}}/" enctype="multipart/form-data" > 
    <input type="file" name="file1" /> <br /> 
    Image info: <input type="text" name="alt" /> <br /> 
<input class="button" type="submit" value="Upload" class="button" /> 
</form> 

mogę skutecznie odbierać Wysłany plik za pomocą:

if 'file1' in self.request.files: 
      if self.request.files['imgfile'][0]: 
        file1 = self.request.files['imgfile'][0] 

Jednak jestem w stanie otrzymać alt wejście. Próbowałem alt = self.request.alt ale otrzymuję ten błąd

AttributeError: 'HTTPServerRequest' object has no attribute 'alt' 

i kiedy używać alt = self.request.files['alt'], otrzymuję:

KeyError: 'alt' 

zabrakło mi pomysłów więc wdzięczni za pomoc.

UPDATE:

Okazało się, że to działa:

alt = self.get_argument('alt') 

Ale wciąż otwarta dla lepszych rozwiązań.

Odpowiedz

5

kod Spróbuj poniżej

self.get_body_argument("alt", default=None, strip=False) 
+0

Daje: 'NameError: nazwa globalna 'get_body_argument' nie jest zdefiniowane ' – Jand

+0

oh sorry i edytować go – DreadfulWeather

+0

ok, Czy mógłbyś rozwinąć to, co jest różnica między 'get_body_argument' i 'get_argument'? Co robi 'strip = False'? – Jand

Powiązane problemy