2012-04-05 3 views
0

Ich renne cherrypy und ein Modul, das eine Datei empfängt und ich möchte die Daten auf die Festplatte ausgeben. Anstatt das cherrypy Expose zu verwenden und die Datei von meiner Haupt-cherrypy-Anwendung zu bekommen, wollte ich es selbst verarbeiten. Ich habe in der Lage gewesen, auf diesePython/Cherrypy Verarbeitung Datei-Upload von Kwargs. Der Instanztyp ist nicht indexierbar. Versuchen, FieldStorage-Daten zu dumpen

print kwargs['image']

und Dumps diese an die Konsole

FieldStorage('image', 'Diagram1.jpeg', *raw image data*)

Wie kann ich dort die drei Variablen zugreifen zu bekommen und sie in meinem Programm verwenden?

Wenn ich versuche, sie zu indizieren, heißt es, der Instance-Typ ist nicht indexierbar.

Ich konnte diese aus print kwargs['image'].__dict__

{'fp': <cherrypy.wsgiserver.SizeCheckWrapper object at 0x23ba510>, 
'disposition_options': {'name': 'image', 'filename': 'Diagram1.jpeg'}, 
'innerboundary': '', 
'name': 'image', 
'_FieldStorage__file': None, 
'list': None, 
'filename': 'Diagram1.jpeg', 
'keep_blank_values': 1, 
'headers': <rfc822.Message instance at 0x23c1830>, 
'length': -1, 
'done': 1, 
'disposition': 'form-data', 
'qs_on_post': None, 
'strict_parsing': 0, 
'file': <open file '<fdopen>', 
mode 'w+b' at 0x23a1270>, 
'outerboundary': '----WebKitFormBoundary5KJ5TEJBxEKAvcW1', 
'type_options': {}, 
'type': 'image/jpeg'} 

Aber keiner scheint es zugänglich bekommen, da es TypeError: not indexable

+0

Könnte es genagelt haben. Mit 'dir (kwargs ['image'])' konnte das Dateiattribut gefunden werden, das ein Dateizeiger ist, der wie eine Datei gelesen werden kann. Andere Variablen, wie oben angegeben, sind "Dateiname" und "Typ" – Supernovah

Antwort

0

Ihre kwargs['image'] ist ein FieldStorage Objekt sagt. Die -Methode ist ein Wrapper, so wie Sie möglicherweise dict(kwargs['image']) tun können.