>> Inhaltsverzeichnis >> Artikel

Element File

  ELEMENT file (description?, grant*, constraint*)
  ATTRIBUTE
       name            string
       notnull         bool
       maxsize         integer
       readonly        bool
       title           string
  
Attribute
Attribut Typ Pflicht Default Beschreibung
name string yes n/a Ein eindeutiger Name welcher diese Spalte identifiziert. Sollte kleingeschrieben und ein valider XML-, SQL-Bezeichner sein.
notnull bool - no Eine Spalte, die mit not-null definiert ist, darf keine undefinierten (NULL-)Werte enthalten.
maxsize integer - no Die maximale Größe der Datei in Bytes.
readonly bool - no Sie können die Spalte auf schreibgeschützt setzen, um zu verhindern dass Änderungen vorgenommen werden. Hinweis: Zeilen können weiterhin hinzugefügt oder gelöscht werden, jedoch darf die Spalte nicht aktualisiert werden.
title string - no Ein Text welcher in der Nutzeroberfläche zur Beschriftung des mit der Spalte verbundenen Steuerelementes verwendet werden kann. Beachten sie, dass der Text ein Platzhalter sein darf, welcher für die angezeigte Sprache übersetzt wird.
Beschreibung

Der Datentyp "file" dient dem Speichern von Dateien ("binary large objects").

Implementierung

Die Dateien selbst sollten nach dem Upload aus Gründen der besseren Performance im Dateisystem verbleiben. Um Speicherplatz zu sparen, kann eine Komprimierung (z.Bsp. GZip) verwendet werden. Die Komprimierung sorgt außerdem dafür, dass die auf dem Server gespeicherten Dateien nicht ausführbar sind und ein potentieller Angreifer den Upload nicht missbrauchen kann, um Schadcode zu übertragen.

Die Datei sollte aus Sicherheitsgründen so abgespeichert werden, dass diese für den Client nicht direkt abrufbar ist. Beim Download der Datei sollte diese automatisch entpackt werden, so dass der Nutzer keine Nachteile aus der Komprimierung erfährt und auch kein Dekomprimierungsprogramm installiert haben muss. Um trotzdem einen schnelleren Download zu gewährleisten, können die Daten, falls der Browser des Nutzers diese Funktionalität anbietet, automatisch als komprimierter Datenstrom übertragen werden. Der Browser übernimmt das Entpacken selbstständig. Ein Eingreifen von Hand ist nicht erforderlich.

Darstellung

Array

Beim Editieren wird ein Uploadfeld zum Hochladen einer neuen Datei und ein Link für den Download der aktuell gespeicherten Datei angezeigt. Die Implementierung kann für Dateien deren Mime-Type bekannt ist eine Vorschau anbieten.

Autor: Thomas Meyer, www.yanaframework.net