ELEMENT file (description?, grant*, constraint*) ATTRIBUTE name string notnull bool maxsize integer readonly bool title string
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. |
Der Datentyp "file" dient dem Speichern von Dateien ("binary large objects").
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.
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.
Thomas Meyer, www.yanaframework.net