1 2 3 4 5 6 7 8
#!/usr/bin/perl use CGI; $| = 1; print "Content-Type: text/html\r\n\r\n"; print "Sleeping for 3 seconds<br>\n"; sleep 3; print "Wide Awake Now.<br>\n";
2011-05-16T08:36:57 pqwas genau hast du denn vor?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#!/usr/bin/perl use strict; use warnings; use CGI; local $|=1; print "Content-type: text/html\n\n"; print "<html>\n"; print " <body>\n"; my $anz = 1000; my $id = 0; my $trigger = 0; for (my $i=1;$i<10000; $i+=1){ my $status = $id/$anz; my $proz = $status*100; if($trigger == 2000){ print " <p>$proz</p>\n"; sleep(2); $trigger =0; } $trigger++; $id = $id + 1; } print " </body>\n"; print "</html>\n";
Quote- cgi 2 ließt die Datei und wird regelmäßig aufgerufen (siehe "redirect")
2011-05-19T10:22:39 pqdu schreibst, dass es beispiele gibt. hast du da ein paar links? deine beschreibung ist sehr vage und umgeht die eigentlich interessanten details.
2011-05-19T10:22:39 pqdas frickelige an der sache ist doch, dass der upload ein einziger prozess ist, dessen antwort der browser erst auswerten kann, wenn er fertig ist.
2011-05-19T10:22:39 pqwenn man (z.b. per javascript) ein popup öffnen wollen würde, das cgi 2 startet, welches die status-datei ausliest, müsste man das schon vor dem upload-beginn öffnen. das upload-skript wiederum muss den namen der datei als parameter bekommen, was wiederum nicht trivial ist, da CGI-parameter erst nach dem erstellen eines CGI-objekts ausgelesen werden können, und das ist erst nach dem fertigen upload erstellt. Ich habe in battie sowas in der art gebastelt, aber schön ist das nicht.
2011-05-19T10:22:39 pqmir wurde auch schonmal gesagt, dass man das mit reinem javascript hinkriegt, aber leider bekam ich kein Beispiel gezeigt.
2011-05-19T10:45:59 topeg2011-05-19T10:22:39 pqdas frickelige an der sache ist doch, dass der upload ein einziger prozess ist, dessen antwort der browser erst auswerten kann, wenn er fertig ist.
Nicht ganz richtig. Das Script kann weiter laufen auch wenn die Seite fertig ist (close STDOUT). Die gesendete Seite enthält dann ein meta refresh (ja da habe ich mich Vertan) auf das Überwachende Script.
Zumindest meine ich, dass ich es mal so gemacht habe. Ich werde Ende der Woche mal danach suchen.
QuoteWenn die "upload-Seite" aufgerufen wird gibt es schon eine eindeutige ID, mit der die die Upload-Count-Datei identifiziert wird.
2011-05-19T10:08:25 topeg- cgi 1 legt Datei an uns schreibt rein wie weit der Upload ist
- cgi 2 ließt die Datei und wird regelmäßig aufgerufen (siehe "redirect")
- Damit die Datei immer vollständig ist, muss sie beim Schreiben/lesen gelockt (siehe lock) werden.
- Damit mehrere Uploads funktionieren muss der Dateiname einzigartig für einen Upload sein.