Wie funktioniert cgi.FieldStorage Dateien speichern?

Also ich habe das Spiel mit raw-WSGI, cgi.FieldStorage-und Datei-uploads. Und ich kann einfach nicht verstehen, wie es sich mit Datei-uploads.

Zuerst schien es, dass es speichert die ganze Datei in den Speicher. Und ich dachte, hm, das sollte einfach zu testen - eine große Datei, die sollten verstopfen die Erinnerung!.. Und war es nicht. Dennoch, wenn ich die Datei anzufordern, es ist ein string, nicht einen iterator, file-Objekt oder so etwas.

Ich habe versucht, das Lesen der cgi-Modul Quelle und fand einige Dinge, die zu temporären Dateien, aber es gibt eine verdammt string -, nicht um eine Datei(-like) - Objekt! So... wie sieht es fscking Arbeit?!

Hier ist der code, den ich verwendet habe:

import cgi
from wsgiref.simple_server import make_server

def app(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    output = """
    <form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="failas" />
    <input type="submit" value="Varom" />
    </form>
    """
    fs = cgi.FieldStorage(fp=environ['wsgi.input'],environ=environ)
    f = fs.getfirst('failas')
    print type(f)
    return output


if __name__ == '__main__' :
    httpd = make_server('',8000,app)
    print 'Serving'
    httpd.serve_forever()

Vielen Dank im Voraus! 🙂

InformationsquelleAutor Justinas | 2011-07-27
Schreibe einen Kommentar