Datei
Formularelemente - Kurzfassung
Das Datei-Element bietet dem Benutzer die Möglichkeit eine oder mehrere Dateien hochzuladen.
Das Datei-Element bietet dem Benutzer die Möglichkeit eine oder mehrere Dateien hochzuladen. Diese werden dann als einzelnes FileInfo -Objekt oder als Liste von FileInfo-Objekten (siehe auch Lobster Data Platform / Orchestration-Strukturvorlage FileInfo im _data Mapping bzw. Lobster_pro Vorlagen) in die Formulardaten geschrieben.
Ob das Hochladen mehrerer Dateien möglich sein soll, kann über die Option "Mehrfachauswahl erlauben" gesteuert werden.
Darstellung
Benutzer können die Datei sowohl durch Klicken auf den Text auswählen oder via Drag&Drop auf die Komponente ziehen.
Konfiguration
Eigenschaft |
Beschreibung |
Download erlauben |
Blendet dem Benutzer einen Download-Knopf ein, wenn eine Datei ausgewählt wurde. Durch Klicken auf den Download-Knopf wird die Datei direkt heruntergeladen. Hinweis: Ist das "content" Feld der Elementdaten leer/null und im Feld "remoteFilePath" steht ein gültiger Server-Dateipfad (relativ zum Lobster Data Platform / Orchestration Upload-Verzeichnis), so benötigt der Benutzer zusätzlich das Recht Dateien lesen zu können (Verwaltung/System/Dateimanager/Lesen). |
Wachsen für Drag&Drop |
Aktiviert/Deaktiviert das automatische "Wachsen" der Dateikomponente, wenn eine Datei darüber gezogen wird |
Datei/Zeichnung wechseln erlaubt |
Erlaubt dem Benutzer das Wechseln zum Anzeigetyp "Zeichenfläche",
|
Rahmen anzeigen |
Nur aktiv, wenn die Option "Datei/Zeichnung wechseln erlaubt" aktiviert ist. |
Standard Dateiname |
Legt den Namen der Datei fest, sollte dieser nicht ermittelt werden können. Hier kann auch ein Berechnungsausdruck hinterlegt werden. |
Typfilter |
Eine optionale komma-separierte Liste von Mime-Typen, welche als Dateityp-Filter im Dateiauswahldialog des Browsers gesetzt werden. Tipp: Der Mime-Type einer bestimmten Datei kann auch herausgefunden werden, indem diese über das Datei-Element (mit Datenfeld!) im Testmodus des Editors hochgeladen wird. |
Uploadmodus |
Der Uploadmodus legt fest wie die ausgewählten Dateien hochgeladen werden sollen.
|
Existierende Dateien immer ersetzen |
Diese Einstellmöglichkeit steht nur zur Verfügung, wenn als Uploadmodus "SERVER_UPLOAD" gewählt wurde. |
Zielverzeichnis auf dem Server |
Diese Einstellmöglichkeit steht nur zur Verfügung, wenn als Uploadmodus "SERVER_UPLOAD" gewählt wurde. |
Daten
Das Datei-Element schreibt die ausgewählte Datei, wie bereits erwähnt, als FileInfo (de.lobster.scm.utils.file.FileInfo) Objekt in die Formulardaten. Nachfolgend wird die Datenstruktur des FileInfo Objektes im JSON-Format beschrieben.
Feld |
Beschreibung |
content |
Die ausgewählte Datei als Byte Array (Als Textbasis auch Base64 kodiert) oder leer, wenn als Uploadmodus SERVER_UPLOAD gewählt wurde |
name |
Der Name der Datei |
remoteFilePath |
Beinhaltet den für den Client erreichbaren Dateipfad auf dem Server (nur bei SERVER_UPLOAD mit definiertem Zielverzeichnis, sonst null) |
tempFileName |
Beinhaltet den Namen einer temporär hochgeladenen Datei (nur bei SERVER_UPLOAD ohne definiertem Zielverzeichnis, sonst null) |
size |
Die Größe der Datei in Bytes |
creationDate |
Der Erstellzeitpunkt der Datei als UNIX Zeitstempel in Millisekunden |
creator |
Der Ersteller der Datei (optional) |
modificationDate |
Der Zeitpunkt der letzten Dateiänderung als UNIX Zeitstempel in Millisekunden |
type |
Der Typ der Datei (z.B.: "image/png", "application/pdf", ...) |
downloadUrl |
Wenn kein content und kein remoteFilePath gesetzt ist, wird diese Url - sofern befüllt - für den Download verwendet |
Beispieldaten als JSON für Uploadmodus BASE64
"dataField"
: {
"clazz"
:
"de.lobster.scm.utils.file.FileInfo"
,
"content"
:
"iVBORw0KGgoAAAANSUhEUgAAAfAAAACSCAYAAAC655gD...ErkJggg=="
,
"name"
:
"Unterschrift.png"
,
"remoteFilePath"
:
null
,
"tempFileName"
:
null
,
"size"
:
"4579"
,
"creationDate"
: 1544092113126,
"creator"
:
null
,
"modificationDate"
: 1544092113126,
"type"
:
"image/png"
}
Darstellungstyp "Zeichenfläche"
Das Datei-Element bietet neben dem Standarddarstellungstypen noch eine Zeichenflächenvariante an, welche dem Benutzer das Erfassen einer Zeichnung oder Unterschrift ermöglicht. Die Darstellungsart wird in der Eigenschaftenrubrik "Allgemein" festgelegt.
(1) Wechselt zur "Datei hochladen" Darstellung. Wird nur eingeblendet, wenn die Option "Datei/Zeichnung wechseln erlaubt" aktiviert wurde
(2) Lädt die Zeichnung als Datei herunter. Wird nur eingeblendet, wenn die Option "Download erlauben" aktiviert wurde
(3) Leert das Zeichenfeld
Hinweise:
Für eine Zeichenfläche sollte eine fixe Größe definiert werden (Höhe/Breite fix), da das resultierende Bild mit der Pixelauflösung der Zeichenfläche erstellt wird.
Das Festlegen einer fixen Pixelgröße verhindert also das Erzeugen von unterschiedlich großen BildernEine vom Benutzer erstellte Zeichnung wird im "png" Bildformat geschrieben
Arbeiten mit dem Uploadmodus "SERVER_UPLOAD"
Wird als Uploadmodus "SERVER_UPLOAD" gewählt, so wird der Dateiinhalt nicht in die Formulardaten geschrieben, sondern direkt auf den Server hochgeladen. Der ausführende Benutzer benötigt dann allerdings das Recht Dateien hochladen zu können (Verwaltung/System/Dateimanager: Erstellen und Ändern).
Größere Dateien werden dabei in kleineren Schritten hochgeladen, um zum einen den Fortschritt anzeigen zu können und zum Anderen das Abbrechen des Vorgangs durch den Benutzer zu ermöglichen.
Relativ zum Upload-Verzeichnis (Verzeichnis des Dateimanagers) von Lobster Data Platform / Orchestration kann je Datei-Komponente ein Zielverzeichnis konfiguriert werden, in welches die Dateien hochgeladen werden. Dort werden die Dateien ohne weitere Existenzprüfung mit ihrem originalen Dateinamen abgelegt und stehen dort permanent zur Verfügung, bis sie ausdrücklich wieder gelöscht werden.
Wird im Gegenzug dazu kein Zielverzeichnis angegeben oder ist der Verzeichnispfad ein leerer String, so werden die Dateien in einem temporären Verzeichnis mit einem generierten und eindeutigen Namen abgelegt. Dieses Verzeichnis wird regelmäßig aufgeräumt. Die Dateien stehen daher nicht permanent zur Verfügung und sollten daher zeitnah verarbeitet werden.
Beispiel für das Hochladen einer Datei ohne Zielverzeichnis
Ein Datei-Element wird mit dem Uploadmodus "SERVER_UPLOAD" und leerem Zielverzeichnis auf dem Server konfiguriert.
Beim Auswählen einer Datei über das Datei-Element wird diese temporär auf den Server hochgeladen.
War das Hochladen der Datei erfolgreich, so wird das zugehörige FileInfo-Objekt in die Formulardaten des Dateielements geschrieben.
{
"file"
: {
"clazz"
:
"de.lobster.scm.utils.file.FileInfo"
,
"content"
:
null
,
"name"
:
"awesome_video_file.mp4"
,
"remoteFilePath"
:
null
,
"tempFileName"
:
"28fc99b1-58ff-4ae8-b6b6-5067d0dadfb7"
,
"size"
:
"3647310"
,
"creationDate"
: 1573817831335,
"creator"
:
null
,
"modificationDate"
: 1573817831335,
"type"
:
"video/mp4"
}
}
►HINWEIS◄ Beim "Mapping" (Phase 3) in einem Lobster_data-Profil steht die Funktion Lobster_pro: resolve temporary uploaded file path (_data-Funktion) zur Verfügung, die den Namen der Temporärdatei (tempFileName) für weitere Verarbeitungsschritte in einen relativen Dateipfad auflösen kann.
ACHTUNG
Das temporäre Upload-Verzeichnis von Lobster_data wird automatisch geleert! Die Datei sollte daher zeitnah verarbeitet oder verschoben werden, da sie zu einem späteren Zeitpunkt nicht mehr existieren wird!