File-Upload mit CGI
Verfasst: Samstag 18. Januar 2003, 20:05
Ich experimentier gerade ein wenig mit dem Uploaden von Dateien über CGI und hab mal ein paar Fragen. Mittels cgi.Fieldstorage habe ich alles Werte eingesammelt und die zu speichernde Datei rausgeholt. Sie steckt als Fieldstorage-Objekt in der Variable file. Das wirkliche file-Objekt steckt allerdings in file.file. (hier mal zur verdeutlichung:)
Wenn ich jetzt mal dir(file) mache kommt das raus:
mich interessieren besonders read_binary, read_lines, read_lines_to_outerboundary. Was machen sie? Ich habe dazu keine Dokumentationen gefunden. Zwar kann ich mir denken das read_binary und read_lines zwischen Binär und Ascii-Lesemodus des wirklichen Filesobjektes wechseln, da sie beide None zurückgeben. Aber genau weiß ich es nicht. Und auch zu read_lines_to_outerboundary wüsste ich gerne mehr. Ich habe keine Vorstellung was es machen kann, würde aber gerne wenigstens mit den anderen beiden arbeiten, um Daten im Binär oder Ascii-Modus an FTP-Server weiterzuleiten.
real_file hat übrigens alle methoden wie ein wirkliches file-Objekt, des wegen müsste die Steuerung wohl logischerweise über file laufen. Kann mir jemand helfen?
Code: Alles auswählen
import cgi
formular=cgi.FieldStorage()
file=formular['datei'] #rausholen der Unterinstanz von FieldStorage, die alles zur Datei beinhaltet.
real_file=file.file #wirkliches Dateiobjekt
Code: Alles auswählen
['FieldStorageClass', '_FieldStorage__file', '_FieldStorage__write', '__doc__', '__getattr__', '__getitem__', '__init__', '__len__', '__module__', '__repr__', 'bufsize', 'disposition', 'disposition_options', 'done', 'file', 'filename', 'fp', 'getfirst', 'getlist', 'getvalue', 'has_key', 'headers', 'innerboundary', 'keep_blank_values', 'keys', 'length', 'list', 'make_file', 'name', 'outerboundary', 'read_binary', 'read_lines', 'read_lines_to_eof', 'read_lines_to_outerboundary', 'read_multi', 'read_single', 'read_urlencoded', 'skip_lines', 'strict_parsing', 'type', 'type_options']
real_file hat übrigens alle methoden wie ein wirkliches file-Objekt, des wegen müsste die Steuerung wohl logischerweise über file laufen. Kann mir jemand helfen?