JavaScript und Binärdateien, Typed Arrays und Bytesequenzen

Nach Niklaus Wirth sind Dateien einfach nur Bytesequenzen mit denen JavaScript mittlerweile umgehen kann.

Inhalte für die MultiMedia-Datei

Ziel dieser Anwendung/Demo ist es, eine Datei mit multimedialen Inhalten zu erzeugen. Dazu haben Sie die Möglichkeit, Audio-, Video-, Grafik- und andere beliebige Dateien in die zu erzeugende Multimedia-Datei einzufügen einschließlich einer dazugehörigen Beschreibung.

Ein Upload der Dateien zum Einfügen neuer Inhalte in die zu erzeugende MultiMediadatei erfolg nicht, vielmehr wird diese Datei mit einen speziellen Serialize-Algorithmus lokal im Browser mittels JavaScript erzeugt und kann aus dem Browser heraus sowohl lokal gespeichert als auch in die im Browser befindliche Anwendung geladen werden.

Nach der Dateiauswahl zeigt untenstehende Tabelle die Eigenschaften der ausgewählten Dateien. Fügen Sie eine Beschreibung zur Datei im jeweiligen Tabellenfeld hinzu. Außer der Dateigröße sind alle anderen Eigenschaften ebenfalls editierbar. Hinweis: Ein Doppelklick auf eine Zeile in untenstehender Tabelle öffnet ein neues Fenster und der Browser stellt den Inhalt dar, soweit der in derselben Zeile angegebene Content-Type dem Browser bekannt ist (das Feld Type ist editierbar).

Dateiname Size /Bytes Type Beschreibung

Eine schlanke Alternative zu multipart/form-data

Der zum Serialisieren/Transport/Speichern gewählte abstrakte Datentyp beinhaltet eine zyklische Datenstruktur nach dem Muster Entity-Attribute-Value. Entity beschreibt einen einzelnen Part und dieser wiederum hat mehrere Attribute mit jeweiligen Values. So befindet sich der mediale Content im Attribut binary und der dazugehörige Content-Type im Attribut type. In der hier vorliegenden Anwendung wird Entity durch eine fortlaufende Nummer verkörpert. In Perl bzw. JavaScript ergibt sich untenstehende Datenstruktur:

    $EAV = { 1 => {}, 2 => {}, 3 => {}, usw. };
    EAV  = { 1:   {}, 2:   {}, 3:   {}, usw. };

Ein Dateiupload mit diesem Datentyp sei hier vorgestellt. Der Serialize-Algorithmus letztendlich ist sehr einfach und lässt sich ebenso einfach in allen anderen Programmiersprachen wie Perl, PHP, usw. implementieren. Bezüglich AJAX können solch serialisierte Bytesequenzen selbstverständlich sowohl gesendet als auch empfangen werden, die Übertragung via HTTP ist dafür transparent (wie nicht anders zu erwarten). Beim Upload mit multipart/form-data ist es nicht möglich, einem Part weitere Eigenschaften hinzuzufügen oder gegebene Eigenschaften zu ändern!


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.