2009-08-16 12 views
1

Ich suche nach einem reinen Javascript/Python-Upload-Beispiel, das Serverabfragen statt clientseitigem SWF verwendet, um den Upload-Fortschritt anzuzeigen (wie den auf rapidshare) .com)AJAX-Upload in Python (WSGI) ohne Flash/Silverlight, mit Fortschrittsbalken

Derzeit läuft die Website auf dem Standalone wsgi Server, der im Lieferumfang von Werkzeug Framework enthalten ist, kann aber zu mod_wsgi verschoben werden, wenn die Last zunimmt.

Ich habe die gp.fileupload Middleware ausprobiert, kann aber nicht funktionieren. Beispiele auf ihrer Website funktionieren entweder nicht: |

Website verwendet bereits Glow Bibliothek für andere misc clientseitige Sachen, aber es gibt keine bestimmte Upload-bezogene Funktionalität darin.

Antwort

0

Wenn Sie keine Unterstützung auf der Web-Seite haben, um die Größe der temporären Datei (oder des In-Memory-Puffers) der hochgeladenen Daten zu verfolgen, wenn sie eintreffen, weiß ich nicht, wie Sie dies tun werden. Einige der populären Web-Server haben spezielle Unterstützung dafür, meist experimentell, aber es ist nicht weit verbreitet und was Sie versuchen, ist im Allgemeinen ziemlich peinlich. Ich habe das kürzlich recherchiert und es ist ziemlich schlecht überall unterstützt.

+0

Also kann dies nicht über eine spezielle Art von WSGI Middleware implementiert werden? Oder die Anfrage wird vollständig gepuffert, bevor Sie in die WSGI-Kette gehen? – wizzard0

+0

Grundsätzlich letzteres, in den meisten Fällen und, soweit ich das beurteilen kann, in Ihrem speziellen Fall. Prüfe werkzeug.http.parse_multipart(), wo es mit einem Aufruf von file.exhaust() endet und der Kommentar "# stelle sicher, dass der gesamte Eingabestrom gelesen wird". Es ist typisch für Web-Server (z. B. nginx, das zum Reverse-Proxy für Ihre eigene App verwendet wird), ähnliche Dinge zu tun und Eingaben vollständig zu puffern, bevor Sie selbst angerufen werden. Es ist leicht zu verstehen, wie man das anders macht, aber mir ist noch kein Server bekannt, der in Python die richtigen Hooks hat. (Es gibt wahrscheinlich einen ... Ich weiß es noch nicht.) –

Verwandte Themen