2017-01-22 4 views
0

Ich empfange Dateien von @ Tornado.Web.stream_request_body Dekorateur und speichern Sie es. Aber mit einer Datei, wenn ich versuche, es zu downloaden, i empfangen Ausnahme:Python Tornado Codierung Ausnahme

'latin-1' codec can't encode characters in position 42-47: ordinal not in range(256)

in Linie self.flush() von Tornado-Handler.

Ich sehe, dass Daten Teil als \x00word/_rels/document.xml.relsPK\x01\x02-\ (b "einige Daten [dieser Teil]") Vielleicht ist deshalb ein Fehler auftritt? Wie man es repariert?

Antwort

0

Ich behebe Problem. urlencode Name der Datei in Content-Disposition header:

self.set_header('Content-Disposition', 
    'attachment; filename=' + urllib.parse.quote(file_name, safe=""))