Inhalt

Konfiguration

Beispiel Konfiguration

Achtung: keine Abstände/Leerschläge zwischen den Definitionen (gif,jpg,jpeg)

1. Dateigrösse

Standardmässig sind 5 MB (5242880 Bytes) Angabe in Bytes. Die Anzeige der Dateigrösse beim Formularfeld, verhält sich dynamisch, kleinere Angaben werden in KB, grössere in MB angezeigt.
» Umrechnungstool (MB > bytes)

Dateigrösse per E-Mail: Bitte beachten Sie, dass es bei der Übermittlung der Anhänge via E-Mail oft Einschränkungen haben kann.

2. Gültige Dateiendungen

Wenn leer, werden alle Dateiendungen / Dateitypen zugelassen. Die Angabe der zulässigen Dateitypen basiert auf der Dateiendung. Die Angaben sind mit Komma zu trennen.

Beispiel Dateiupload

3. Testen / Fehlermeldung

Sind die erlaubten Dateiendungen/Dateigrössen einmal eingestellt, wird dies beim Upload automatisch verprüft (es sind also keine zusätzlichen Einstellungen nötig). 

Zieldateiname festlegen

Über eine Eigenschaft kann der gewünschte Dateiname festgelegt werden. Der Dateiname kann als Wert (Zeichen/String) oder als Formel mit Werten aus dem Formular zusammengesetzt werden.

Dies dient einer besseren Weiterverarbeitung von Datein. Nichtsaussagende Bennenungen wie "doc1.docx" können verhindert werden. Wird zweimal dieselbe Datei konzept.pdf hochgeladen, kann damit im themantischen Kontext eine Unterscheidung sichergestellt werden.

Konfiguration

Im Bereich (Reiter/Tab) Eigenschaften wird eine neue property angelegt [ + ]

Key = jax-filename-overwrite

Im zweiten Feld wird eine Formel erwartet. Text (String) muss mit " erfasst sein.

Als Formel können unterschiedlichste Werte zusammengefügt werden. Zum Beispiel

  • "Portrait_von_" + feldName + "-" + feldVorname

Dies ergäbe beim Upload eines Portraits (.jpg) von Hans Muster folgenden Dateinamen Portrait_von_Hans-Muster.jpg

Hinweis : Dateiname statt GUID

Standardmässig wird jeder Upload als technische GUID (z.B. so 9f07d8c9-5f2b-4d66-a0a5-df00802d93c4) geführt. Die übliche Weiterverarbeitung gibt bei der Übermittlung den Dateinamen und die Datei weiter. Es ist nichts zu beachten.

Für die Verwendung des Dateinamens der hochgeladenen Datei in Regeln oder in Textausgaben als Wert dient die GUID nicht. Damit der Dateiname verwendet wird, muss in der Formel folgende Funktion verwendet werden:

  • pInstruct(node(" feldname "), "jax", "fileName")
  • pInstruct(node(" uploadTeilnahmebestaetigung "), "jax", "fileName")

Beispiel einer Regel:

Beispiel eines im XML gespeicherten Wertes

<var id="uploadTeilnahmebestaetigung">  
<?jax fileName="Quittung_Kurskosten_H.Muster.pdf" fileSize="153959"?>
9f07d8c9-5f2b-4d66-a0a5-df00802d93c4
</var>

Validierungsreihenfolge

Falls Ein Upload mit gültigen Dateiendungen konfiguriert wurde, so wird die im Browser ausgewählte Datei vor dem Upload an den Server mittels lokalem Javascript geprüft, und falls diese nicht der erwarteten Dateiendung(en) entspricht, so wird der Upload verhindert. Nach einem erfolgreichem Dateiupload wird serverseitig Folgendes in dieser Reihenfolge geprüft:

  • Maximale Dateigrösse
  • Allenfalls konfigurierte gültige Dateiendungen werden serverseitig nochmals geprüft
  • Falls ein Viruschecker im System konfiguriert wurde, wird die Datei auf Malware geprüft
  • Die hochgeladene Datei wird mittels einer MagicByte-Überprüfung auf gültigen Dateiinhalt überprüft. Im Sinne von: Ist das hochgeladene PDF (mit der Endung .pdf) auch wirklich ein PDF
DateiendungPrüfung
xmlDie Datei wird auf korrekte XML-Syntax überprüft, indem versucht wird, serverseitig ein W3C Dom zu erzeugen.
xsdDie Datei wird auf korrekte XSD-Syntax überprüft, indem versucht wird, serverseitig ein valides W3C XML Schema zu parsen.
xuiDie Datei wird auf korrekte XML-Syntax überprüft, indem versucht wird, serverseitig ein W3C Dom zu erzeugen. Zudem wird geprüft, ob der Root-Knoten des XMLs dem Namen "XUI" entspricht.
<alle>

Alle anderen Dateiendungen (ausgeschlossen die unten aufgeführten "whitelist" Endungen werden mit einer MagicByte-Überprüfung auf deren korrekten Inhalt (gemäss Dateiendung) geprüft.

Bei der Magicbyte-Überprüfung handelt es sich um die Java Bibliothek com.j256.simplemagic zur Bestimmung von Dateitypen (MIME-Types) anhand ihrer "Magic Numbers" (inhaltliche Signatur) oder Byte-Arrays. Sie implementiert die Funktionalität des Unix-Befehls file(1) und ermöglicht es, das Inhaltsformat von Dateien, InputStreams oder Byte-Arrays zu identifizieren, ohne sich auf Dateiendungen verlassen zu müssen. 

Hauptmerkmale und Funktionen:

  • Content-Type Erkennung: Bestimmt den MIME-Type basierend auf dem eigentlichen Dateiinhalt.
  • Unix-ähnliche Funktionalität: Verwendet magic(5)-Dateien, ähnlich wie der file Befehl in Unix-Systemen.
  • Flexible Konfiguration: Nutzt interne Magic-Number-Definitionen oder externe magic-Dateien aus dem Dateisystem (z.B. /etc/magic).
  • Quelle der Analyse: Kann Inhalte von File, InputStream oder byte[] verarbeiten.
  • Java-basiert: Entwickelt für den Einsatz in Java-Anwendungen.
  • Verwandte Klassen: Enthält Klassen für Endian-Konvertierungen und internen Speichermechanismen der Magic-Einträge. 

Die Bibliothek ist auf Maven Central verfügbar und wird häufig genutzt, um den wahren Dateityp sicher zu bestimmen.

Dateiendungen, welche nicht geprüft werden
txt,csv, nls,svg

Diese Dateiendungen werden standardmässig nicht geprüft. Diese entsprechen einer Whiltelist für Inhaltsüberprüfung und können mit dem Systemproperty im jaxfront.xml pro Mandant übersteuert werden.

Whitelist
<property mutable="true">
        <key>jaxfront.file.contentValidator.extensionWhitelist</key>
        <value>txt,csv,nls,svg</value>
</property


 


Könnte auch interessant sein

- Optimierte Darstellung beim Mehrfachuploads