Sven Rautenberg: Ladevorgangsanzeige während PHP Dateiupload

Beitrag lesen

Moin!

Ich wollte einen Ladebalken anzeigen lassen, der den Uploadfortschirtt in Prozent anzeigt, während man mit PHP eine Datei hochlädt.

Mit PHP direkt geht das (noch[*]) nicht, aber mit etwas Hilfe von Perl soll man da wohl doch was hinbekommen. Probiert habe ich da selbst noch nicht: Mega Upload

Keine der denkbaren sogenannten "Lösungen" vermag wirklich zu überzeugen.

Fakt ist: Der Upload-Request muß erst komplett übertragen sein, bevor der Ergebnis-Response des Servers zurückkommen darf. Das bedeutet, dass man niemals im gleichen Browserfenster, in dem sich das Uploadformular befindet, den Fortschrittsbalken generieren kann.

Alle "Lösungen" nutzen also ein zweites Fenster (Javascript-Popup, Frameset, IFrame), in dem während des Uploadvorgangs regelmäßig der Fortschritt aktualisiert wird.

Wobei das natürlich auch wieder blöd ist, denn beständige Fortschrittsbalkenneuladungen beeinträchtigen natürlich den Upload. Außerdem ist die Verwendung eines Session-Mechanismus erforderlich, da man sonst die Balken-Requests nicht dem laufenden Upload zuordnen könnte.

Es kommen für solche Fortschrittsbalken also gleich drei extrem zweifelhafte Techniken zum Einsatz, auf deren Existenz man sich nicht verlassen kann:
1. Zweitfenster bzw. Frames, wohlmöglich Javascript
2. Sessions
3. Ständige Reloads, wohlmöglich mit Javascript.

Und das alles nur, weil die Browserhersteller es bis jetzt versäumt haben, dem Browserbenutzer bei eventuell langwierigen Uploadvorgängen durch eine _vernünftige_ Fortschrittsanzeige die Wartezeit zu versüßen.

- Sven Rautenberg

--
"Love your nation - respect the others."