Skip to main content

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

  1. Der Client lädt die Datei per POST /upload hoch (Multipart; Parameter file, optional uploadUuid und metaMapFlat für Metadaten).
  2. Der Server legt die Datei temporär ab (webtoolkit.upload.tempFolderPath, sonst java.io.tmpdir) und registriert sie unter einer UUID.
  3. 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).

Sicherheit

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.