Input type file multiple und viele große Dateien
Da ich hin und wieder auch mal mit meinem Smartphone Fotos mache, habe ich mir jetzt auf meinem PC einen Webserver fürs Upload dieser Bilder eingerichtet. Also der Webserver ist im LAN erreichbar und natürlich auch per WLAN. Somit entfällt der Anschluß eines USB-Kabel und die Bilder landen diekt auf meinem lokalen Computer.
Ein multiple Fileupload per Enctype multipart/form-data
würde jeden Webserver in die Knie zwingen, denn das Parsen dieses grottigen Enctype ist sehr CPU-lastig. Also habe ich für meine Belange einen proprietären Content-Type entwickelt, welcher die Dateien ganz einfach nur aneinanderhängt. Das Parsen entfällt und stattdessen wird der Datenstrom sequentiell gelesen, wobei die Einzeldaten (Tupel) direkt beim Lesen aus STDIN unmittelbar serialisiert werden und nicht erst dann wenn alles angekommen ist. Ein Tupel hat genau 3 Datenfelder: Dateiname, Last-Modified und die Binary selbst. Nach dem Schreiben einer jeden Datei mit dem Original-Dateinamen auf die Festplatte meines PC (Webserver) bekommt jede Datei auch den Original-Zeitstempel als atime
und mtime
aufgedrückt.
Infolge der sequentiellen Serialisierung gestaltet sich das Upload sehr großer Datenmengen als problemlos. Beim Upload mit über 200 Dateien und einer Gesamtdatenmenge von 1 GB zeigte der Server keine nennenswerte CPU-Belastung.
Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. sos@rolfrost.de.