Der Abschnitt beschreibt die Möglichkeiten des in MyCoRe integrierten Datei-Uploads.
MyCoRe hat über die Jahre immer wieder neuere Lösungen für den File-Upload entwickelt. Auf dieser Seite wird die aktuelle Variante beschrieben. Ggf. könnten noch ältere Varianten eingesetzt werden, jedoch sollten diese mittelfristig ersetzt werden.
Für das 2018.06 Release wurde einen neuen Datei Upload entwickelt. Dieser basiert auf der webkitEntry-API und wird von Firefox, Chrome und Edge unterstützt. Für alle anderen Browser gibt es einen Fallback. Um den neuen Upload zu benutzen muss man das MyCoRe-Webtools Maven-Modul einbinden. In der Seite mit dem Upload muss man folgende Skripte und CSS-Dateien laden.
|
|
Außerdem versucht das Skript aus der globalen Javascript-Variable die Eigenschaft **mycoreUploadSettings** auszulesen, also definiert man diese folgendermaßen:
|
|
Das Script ist jetzt fertig eingebunden und konfiguriert. Jetzt muss ein Bereich (z.B. div-Element) bestimmt werden, in dem eine Datei zum Upload abgelegt werden kann.
|
|
Das Attribut data-upload-object bestimmt in welches MyCoRe-Objekt die Dateien geladen werden sollen, entweder ein Derivat oder ein Objekt zu dem automatisch ein Derivat erstellt wird. Das Attribut data-upload-target bestimmt in welchen Ordner die Dateien hochgeladen werden. Die Script-Zeile am Ende aktiviert dann den Fileupload für das Div-Element.
Die Übersetzung für den Text in der Box ist wie folgt definiert:
|
|
In der Übersetzung steckt ein Link für den Fallback für Browser die WebKitEntry nicht unterstützen. Wichtig ist das dieser die Klasse mcr-upload-show hat.
Damit der Benutzer weiß das er die Dateien fallen lassen kann (Drag&Drop) kann man die Box beim Dragover noch färben. Dafür kann man folgendes CSS nutzen:
|
|
Dieses Servlet nimmt Daten aus einem Upload Formular entgegen und legt die digitalen Objekte im MyCoRe-System als Derivate ab. Um ganze Verzeichnisse abzulegen, sind diese in ein Zip-File zu packen. Selbiges wird dann automatisch ausgepackt. Um Zip-Files direkt abzulegen ist unten stehendes Property zu setzten.
Syntax des Servlet-Aufrufes:
|
|
uploadId
- eine eindeutige ID für den Upload. Diese wird beim Aufruf der Upload-Seite generiert.
method
- hier ist derzeit nur die Methode formBasedUpload
definiert.
cancelURL
- die URL für den Cancel Button.
parentObjectID
- Die MyCoRe ID des Objektes.
derivateID
- Die MyCoRe ID des zugehörigen Derivates.
filename[]
- liste der Einzeldateien.
Properties:
MCR.FileUpload.DecompressZip=[true|false]
- true
bedeutet das Dekomprimieren der Zip-Dateien, false
unterdrückt das.
Der MCRPostUploadFileProcessor ermöglicht es, Verarbeitung nach dem Upload zu ergänzen. Das wirkt sich
dann aber wirklich nur auf den Upload und nicht auf den Derivat-Import aus! Man kann die Klassen einfach
kommagetrennt in das folgende Property schreiben: MCR.MCRUploadHandlerIFS.FileProcessors
.
|
|