Mit HTML5 kommt die Möglichkeit für Webseiten Programmierer, bei Dateiuploads mit einem Web-Formular auch mehrere Dateien mit nur einem Datei-Auswahl-Button gleichzeitig hochladen zu lassen. Die verschiedenen Browser unterstützen diese Möglichkeit unterschiedlich, ein Browser unterstützt sie noch gar nicht. Hier die Unterschiede im Detail.
How To?
Um dem User eine Mehrfachauswahl von Dateien zum Upload anzubieten, muss man im input Tag das “multiple” Attribut verwenden.
Beispiel: <input type=“file” multiple>
Da HTML5 von den führenden Browsern unterschiedlich unterstützt wird, macht sich das natürlich auch hier bemerkbar.
Der Internet Explorer 8 unterstützt es z.B. überhaupt nicht. Firefox, Google Chrome, Safari und Opera unterstützen es in den neuesten Versionen, jedoch mit Unterschieden.
Firefox
Beim Firefox sieht es aus, wie eine einfache Dateiauswahl und man wird wie gewohnt zum “Datei auswählen” aufgefordert. Hat man noch keine Datei ausgwählt, ist die Anzeige leer, ansonsten werden durch komma getrennt die Dateipfade zu den ausgewählten Dateien angezeigt.
Chrome und Safari
Chrome und Safari verhalten sich identisch. Auch hier wird man zum “Datei auswählen” aufgefordert. Hat man das noch nicht getan, wird man mit dem Text “Noch keine Datei ausgewählt” darüber informiert. Hat man eine Datei ausgewählt, wird der Dateiname angezeigt, bei mehreren Datien, nur noch die Anzahl der Dateien.
Opera
Opera tanzt ein wenig aus der Reihe. Man wird zum “Dateien hinzufügen” aufgefordert. Was nur wie eine andere Wortwahl aussieht, wirkt sich für den User aber ganz anders aus. Tatsächlich fügt man beim Opera mit jedem neuen Klick auf den Button, Dateien zur Liste hinzu. Es ist nicht wie bei den anderen Browsern möglich, die Liste komplett zu ersetzen! Die Anzeige ist wie beim Firefox und zeigt die Liste der Dateipfade.
Fazit
Das neue Feature ist eine tolle Sache und erleichtert erst einmal das Hochladen mehrerer Dateien mit einem Web-Formular. Leider wird auch dieses Feature nicht von allen Browsern gleichermaßen unterstützt. Einmal mehr gilt es für den Programmierer zunächst zu ermitteln welcher Browser verwendet wird, und dann z.B. für den IE eine andere Möglichkeit für den Multi-Dateiupload anzubieten. Der Ansatz ist trotzdem gut. Es empfiehlt sich aber, mit einem Javascript die gesamte Uploadgröße im Auge zu behalten, um unnötigen Traffic zu vermeiden und die zulässigen Maximalgrößen des Servers zu berücksichtigen. Dazu mehr in einem Folgeartikel.
(ix)
Hast du mal geguckt was dort via POST gesendet wird? Da ja Programme wie z.b. curl HTML nicht wirklich kennen, aber trotzdem fähig sind Formulare zu bearbeiten.
Oder geht das gar nicht mehr über POST? Würde mich mal interessieren
Das geht natürlich auch via POST.
Ich kenne nur die PHP Extension cURL .. und das nutzt hier nix, weil der User ja interaktiv die Dateien auswählen muss.
curl HTML kenne ich nicht.
curl HTML gibt es auch nicht. Ich habe damit gemeint das curl nicht HTML parsen kann. Es gibt es nur als reinen Text aus. Aber es kann eben HTTP Verbindungen herstellen und auch deren Request-Methoden.