Array aus Form

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
x-herbert
User
Beiträge: 59
Registriert: Mittwoch 27. November 2002, 20:52

@BJ

hab das Script mal ausprobiert => ich glaube ich verstehe es langsam

kleine Änderung:

Code: Alles auswählen

def main():
    reader = None
    try:
        target = open(os.devnull, 'wb')
        filename = 'P:\\record\\Ocean_11.mpg'
        reader = MeasuringReader(open(filename, 'rb'),
                                 os.path.getsize(filename))
        monitor = TransferMonitor(reader)
        monitor.start()
        copyfileobj(reader, target)
        target.close()
    finally:
        if reader:
            reader.close()
gruss x-herbert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

x-herbert hat geschrieben:Ich habe mir jQuery nochmal genauer angesehen - macht auch einen guten Eindruck... besser/schlechter ist hier wohl kaum die Frage, sondern auf welches "Pferd" man setzt und Erfahrungen sammelt - ODER gibt es von Dir noch USPs zu jQuery??
blackbird hat seine Erfahrungen mit jQuery zusammengefasst und ich kann dem absolut zustimmen. Mit jQuery zu Arbeiten ist einfach grandios, damit bekommt man innerhalb kürzester Zeit tolle Dinge zusammen und das Chaining ist sehr nützlich.
Wenn ich noch eine Library für GUI bräuchte, würde ich Ext mit jQuery kombinieren (da gibt es extra Ext-Integration für).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
x-herbert
User
Beiträge: 59
Registriert: Mittwoch 27. November 2002, 20:52

... die Sachen sehen schon recht schick aus!

zu meinem Thema:
auf dem Server läuft leider nur eine 2.2.x Version, so dass ich bei Tempfiles das NamedTemporaryFile nicht verwenden kann - meine Idee war einen "Zeiger" auf die temporäre Datei zu setzen um zu sehen wie diese Größer wird.

Als Fazit aus dem Ganzen sehe ich eigentlich nur noch, die Funktion make_file() aus FieldStorage umzubasteln und die durchgeschleusten Byte zu zählen... siehe http://osdir.com/ml/python.cherrypy/200 ... 00107.html

Ansonnsten funktioniert der dirty-hacking-code erstmal und ich muss den nochmal "nachputzen"[/code]

Änderungzu make_file: muss sicher in Funktion read_binary(self) eingebastelt werden
gruss x-herbert
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Öhm du kannst ja einfach das File was du von make_file zurück gibst mit blackjacks code wrappen O_o
BlackJack

So einfach geht's nicht, weil `make_file()` für die einzelnen übertragenen Dateien aufgerufen wird und nicht für den gesamten Datenstrom. Die Grösse so einer Datei ist also nicht gleich `CONTENT_LENGTH`.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Die run Methode muss er sowieso anpassen. Auch wenn ich Persönlich ein Callback für hübscher halten würde als so ein gepolle :)
x-herbert
User
Beiträge: 59
Registriert: Mittwoch 27. November 2002, 20:52

Ich denke, da gibt es einen "logischen Kurzschluss"

Nach bisherigen Kentnisstand kommen doch wohl nur zwei Varianten über die Arbeitsweise von FieldStorage:

1.) FieldStorage speichert erst den StdIn komplett in einer Temp und macht anschließend für die einzelnen Files Temps

2.) FieldStorage fischt sich anhand der Boundaries gleich aus dem StdIn einzelne Temps anhand Files-Boundaries

wenn 1.) dann sollte an der Stelle wo das erste "große" Temp erzeugt und geschrieben wird, die Bytes gezählt werden

wenn 2.) dann wäre es richtig, vorher den Datenstrom abzufangen und zu zählen

[da make_file() also tempfile bei 2.2.x keine Dateinamen zurück gibt, muss an anderer Stelle zum "Einklinken" gesucht werden]

Gruss x-herbert
gruss x-herbert
x-herbert
User
Beiträge: 59
Registriert: Mittwoch 27. November 2002, 20:52

@veers

run-Methode? wie ist das gemeint...
gruss x-herbert
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

http://paste.pocoo.org/show/2404/ da hat die Klasse TransferMonitor eine Run Methode. Und diese müsstest du anpassen oder mit Callbacks arbeiten.
x-herbert
User
Beiträge: 59
Registriert: Mittwoch 27. November 2002, 20:52

@veers

.... o.k.!

Thread => run
gruss x-herbert
Antworten