Dateiupload

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Hallo,
ich versuche gerade einen Dateiupload mit Python einzurichten.
Und habe mir bereits folgendes Skript erstellt:

Code: Alles auswählen

print 'Content-Type: text/html\n'
import cgi
form = cgi.FieldStorage()

if form.has_key("filename"):
    item = form["filename"]
    if item.file:
        data = item.file.read()
        print len(data)


print """
<form action="index.py" method="post" enctype="multipart/form-data">
    <input type="file" name="filename" />
    <input type="submit" value="Uploaden" />
</form>
"""
Das funktioniert soweit auch ganz gut, aber sobald die Dateigröße ansteigt, funktioniert das Ganze nicht mehr... Hat Python eine interne Einstellung, die ein Upload Limit festlegt (ähnlich php.ini)? Oder muss man hier im Apache etwas umstellen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ist natürlich auch die Frage warum du Uralt-CGI nutzt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Was spricht dagegen, bzw. Alternative?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

SchneiderWeisse hat geschrieben:Was spricht dagegen, bzw. Alternative?
Alternative: WSGI. Oder eines der Frameworks, die letztendlich sowieso über WSGI angebunden werden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

SchneiderWeisse hat geschrieben:Was spricht dagegen, bzw. Alternative?
Die geringe Performance und der völlig Mangel an komfortablen Features, die größere Frameworks so mitbringen. Wenn du an CGI gebunden bist, so kannst du immer noch ein CGI-Gateway für WSGI nutzen.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Perormance spielt eine eher kleine Rolle, da es sich lediglich um Uploads und eine kleine Verwaltungsoberfläche mit Datenbankanbindung handelt - für den Privatgebraucht mit evt. mehreren Nutzern. WSGI kommt wiederum auch nicht in Frage, da es noch nicht im "stable" von Debian ist. Aber sicherheitstechnisch macht es keinen Unterschied?

zu meiner ursprünglichen Frage: Woran kann das liegen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

SchneiderWeisse hat geschrieben:Perormance spielt eine eher kleine Rolle, da es sich lediglich um Uploads und eine kleine Verwaltungsoberfläche mit Datenbankanbindung handelt - für den Privatgebraucht mit evt. mehreren Nutzern.
Ja, aber die Middlewares die du bei WSGI einfach anschließt und die du bei CGI selbst schreibst machen einen unterschied ob du nun daran 3 Tage programmierst oder lieber 2 Wochen, weil du den ganzen Session, Authentifizierungskram etc. selbst machen darfst.
SchneiderWeisse hat geschrieben:WSGI kommt wiederum auch nicht in Frage, da es noch nicht im "stable" von Debian ist.
Hä? WSGI ist ein Standard so wie HTML. Da hättest du genauso sagen können dass HTML nicht in Frage kommt, weil es nicht in Debian Etch ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

naja, ich meinte mod_wsgi..., was natürlich auch mit fastcgi etc. machbar wäre....

aber dann kann ich gleich ein Framework verwenden... vllt. werde ich das auch machen.

Nur das Problem mit dem File-Upload wird dort auch bestehen...
lunar

SchneiderWeisse hat geschrieben:naja, ich meinte mod_wsgi..., was natürlich auch mit fastcgi etc. machbar wäre....

aber dann kann ich gleich ein Framework verwenden... vllt. werde ich das auch machen.
Um eine WSGI-Anwendung an FastCGI zu hängen, braucht es lediglich flup. Als Framework würde ich das nun nicht bezeichnen ... ;)
Nur das Problem mit dem File-Upload wird dort auch bestehen...
Das muss nicht sein. mod_cgi und mod_fastcgi bzw. mod_fcgi sind unterschiedliche Dinge, die unterschiedliche Einstellungen haben.

Die Begrenzung der Upload-Größe hat sicher nichts mit Python zu tun, ein Pendant zur "php.ini" hat Python glücklicherweise nicht.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

dass das kein Framework ist, ist mir schon klar... aber es macht sonderlich viel mehr Aufwand dann gleich ein Framework zu verwenden.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dann schau Dir doch mal werkzeug an! Das ist ja je nach belieben auch durchaus lightweight.
Antworten