HTTP Upload - Schmerz lass nach!
Ich glaube man kann mit Fug und Recht behaupten, dass es ohne die Bilder und Videos der Internetbenutzer kein Web2.0 gäbe. Erfolgreiche Webseiten wie YouTube und Flickr basieren gerade auf die Möglichkeit Bilder / Videos - mit dem Browser hochzuladen. Zum Glück gibt es in HTML ein Formularelement <input type="file" /> das den Dateiupload ermöglicht, doch leider ist Formularelement eine Krankheit, die sowohl dem Anwender also auch dem Entwickler fortdauernde Schmerzen bereitet.
Zunächst ist mehr als störend dass der Anwender mit jedem Formularelement nur eine Datei auswählen kann. In einer Zeit, in der man Urlaubsfotos eher im Netz veröffentlicht als sie in Photoalben einzukleben ist das einfach nicht praktikabel. Sind endlich alle Dateien zum Upload ausgewählt und wurde der "Senden-Knopf" gedrückt, muss der Anwender warten bis alles komplett zum Server hochgeladen wurden und bekommt erst dann eine Rückmeldung - bis dahin: Sanduhr. Das ist besonders ärgerlich, wenn sich der Upload wegen der geringen Bandbreite und / oder der großen Datenmenge über Minuten, wenn nicht Stunden hinzieht.
Aus Sicht des Entwicklers gibt es weitere Mängel des (standard) HTTP-Upload: Erstens) Alle Formulardaten (POST) werden komplett vom Browser an den Server übertragen und erst danach wird die Kontrolle an die Programme (z.B. PHP-Skripte) auf dem Server übergeben - also erst nachdem die gesamte Datei(en) vom Browser zum Server hochgeladen wurden. Das ist vorallem dann ärgerlich, wenn der Server die Datei ablehnt (z.B. weil ein Bild erwartet wurde, es wurde aber ein PDF hochgeladen). Zweitens) Da der Webserver die POST-Daten zwischenspeichern muss, macht es Sinn die Maximalgröße zu beschränken (z.B. auf 20 MByte). Daher können auch keine Dateien hochgeladen werden die größer sind als dieses Limit (20 MByte). Nun mag das bei Bildern nicht so dragisch sein (20 MByte pro Bild mehr als genug). Sollen aber Videos in HD hochgeladen werden, ist man gezwungen das Limit deutlich anzuheben (z.B. auf 2000 MByte). Drittens) Das HTML Formularelement zum Dateiupload verhält sich nicht ganz so wie die anderen HTML Formularelemente (JavaScript, Darstellung, etc.). Viertens) Es fehlen Möglichkeiten die Dateiauswahl zu verbessern (z.B. Filter nach Dateiendungen, Mehrfachauswahl, etc.). Fünftens) Und überhaupt!
Damit der Dateiupload nicht nur hübscher aussieht, sondern auch technisch besser wird genügt es aber nicht, das GUI Element auszutauschen. So werden die oben angesprochenen Nachteile durch sog. Chunked-Upload ausgemerzt. Dabei - wie auch in Wombat beispielhaft implementiert - erfolgt der Upload in drei Schritten:
- Initialisierung: Der Client kündigt dem Server einen Upload an (z.B. mit Dateigröße, Dateityp, etc.)
- Chunk Upload: Der Client lädt die Datei häppchenweise (z.B. jeweils 2 MByte) zum Server hoch - bis die gesamte Datei übertragen wurde.
- Finalisierung: An Ende setzt der Server die Chunks wieder zusammen und verabeitet die Datei
Suche
Aktuelle Artikel
- Kinder an die Macht 8. Apr. 2025 (07:51)
- Wir müssen über Geld reden... 27. Mär. 2025 (19:16)
- Ich habe zwei Stimmen 11. Feb. 2025 (19:10)
- Dumm wählt gut! 24. Jan. 2025 (09:33)
- E-Rechnungen ab diesem Jahr 14. Jan. 2025 (14:05)
- E-Mail an den Stadtrat 3. Dez. 2024 (22:43)
- Sozialarbeit lohnt sich! 21. Nov. 2024 (08:29)
- Europäisches Recht 5. Jun. 2024 (10:15)
- Unter Wert verkaufen? 18. Apr. 2024 (09:47)
- Angriff in der Nacht 25. Mär. 2024 (13:52)
- Suche Menschfreund:in 2. Nov. 2023 (08:06)
- Medienbruch ist böse 15. Mai. 2023 (08:22)
- Wir brauchen Verstärkung 27. Mär. 2023 (11:23)
- Noch eine Preissenkung 9. Feb. 2023 (08:08)
- Dresden 2023 trifft Zen 3. Jan. 2023 (15:11)