Datei-Upload
Mit dem Upload-Addon können Anwender lokale Dateien in den Viewer laden (z. B. über einen
Datei-Dialog oder Drag&Drop in der Integration). Der Ablauf ist zweistufig: Die Datei wird per
HTTP hochgeladen, anschließend wird sie über eine upload:-URI wie jedes andere Dokument
geöffnet.
Einbindung
<dependency>
<groupId>com.levigo.jadice.webtoolkit</groupId>
<artifactId>webtoolkit-addon-upload</artifactId>
</dependency>
Das Addon ist nach Einbindung aktiv (webtoolkit.upload.enabled, Default true); ebenso die
Auflösung des upload:-Schemas (webtoolkit.uriProviderUploadEnabled, Default true).
Ablauf
- Der Client lädt die Datei per
POST /uploadhoch (Multipart; Parameterfile, optionaluploadUuidundmetaMapFlatfür Metadaten). - Der Server legt die Datei temporär ab (
webtoolkit.upload.tempFolderPath, sonstjava.io.tmpdir) und registriert sie unter einer UUID. - Der Client öffnet das Dokument über die URI
upload:<uuid>.
Limits
Zwei Ebenen begrenzen die Upload-Größe:
spring:
servlet:
multipart:
max-file-size: 50MB
max-request-size: 50MB
webtoolkit:
clientConfiguration:
maxUploadFileSize: 50000000 # clientseitige Prüfung (Bytes), via /client-configuration
ZIP-Vorschau
Für hochgeladene ZIP-Archive stellt das Addon eine Vorschau des Archivinhalts bereit
(ZIP_PREVIEW-Conversation), aus der einzelne Einträge geöffnet werden können. Zum Schutz vor
Zip-Bomben gelten serverseitige Grenzen, konfigurierbar über die ServerConfiguration bzw. die
Properties webtoolkit.zipThresholdSize (maximale entpackte Gesamtgröße, Default 256 MiB) und
webtoolkit.zipThresholdRatio (maximales Kompressionsverhältnis, Default 10) sowie eine
Obergrenze für die Anzahl der Einträge (Default 10000).
Der Upload-Endpoint ist Teil der Anwendung und unterliegt der Zugriffskontrolle der Integration — wie alle Endpoints bringt das jadice web toolkit selbst keine Authentifizierung mit (siehe Authentifizierung). Die Upload-Limits sollten an den Anwendungsfall angepasst, aber nicht unbegrenzt gesetzt werden.