Importieren von Dateien aus einem Zip-Archiv


Tue 20 September 2016 Von Thibaud Arguillere

Gehen wir davon aus, Sie möchten Benutzern wie unten dargestellt ermöglichen, eine .zip-Datei mit Struktur, Ordnern, Unterordnern und Dateien abzulegen, damit nach dem Hochladen dieser zip-Datei die Dateien mit ihrer Hierarchie erstellt werden und kein Dateidokument erstellt wird, das die .zip-Datei enthält.

Zip File Import

Falls Sie nach dieser Funktion suchen, haben wir genau das richtige Plug-in für Sie: nuxeo-unzip-file(1).

Nachdem das Plug-in installiert wurde, können Sie genau den oben beschriebenen Prozess durchführen: eine .zip-Datei mit einer Dateihierarchie in Ihre Nuxeo-Anwendung importieren, wodurch automatisch die Dateien extrahiert und genau die gleiche Hierarchie hergestellt wird.

Möglicherweise benötigen Sie in Ihrer Anwendung eine höhere Detailgenauigkeit. In manchen Fällen sollen die Dokumente hergestellt, in einem anderen Fall nur die zip-Datei gespeichert werden (typischerweise in einem Datei-Dokument).

Zu diesem Zweck müssen Sie:

  • das automatische Verhalten deaktivieren
  • die Extraktion der Datei "on-Demand" vornehmen

Diese beiden Punkte erreichen Sie wunderbar mit unserem tollen Online-Konfigurationstool Nuxeo Studio.

Um das automatische Verhalten zu deaktivieren, müssen Sie die Standard-Contribution überschreiben, die das Plug-in dem ‚FileManager'-Service hinzufügt. Gehen Sie dazu in Studio zu Erweiterte Einstellungen > XML Erweiterungen und erstellen Sie eine neue Contribution. Geben Sie ihr den gewünschten Namen und fügen Sie das folgende XML ein, für das wir den gleichen Namen der Contribution verwenden, es jedoch deaktivieren.

<extension target="org.nuxeo.ecm.platform.filemanager.service.FileManagerService" point="plugins">
  <plugin name="UnzipToDocuments" <strong>enabled="false"</plugin></strong>></plugin>
</extension>

Wenn Sie Ihre Änderungen jetzt installieren und Ihre .zip-Datei ablegen, erstellt die Nuxeo Platform ein ‚Datei'-Dokument.

Um dieses "on Demand" zu extrahieren, verwenden Sie die durch das Plug-in bereitgestellte Transaktion, ‚Document.UnzipFileToDocuments. Diese Transaktion akzeptiert entweder ein ‚Dokument oder ein ‚Blob. Erfolgt die Eingabe über ein Dokument, wird das Feld ‚file:content verwendet, um den Blob zu erhalten (Sie können den Parameter ‚xpathverwenden, um ein anderes Feld anzugeben). Standardmäßig werden die Dokumente im aktuellen Container erstellt, die Transaktion gibt Ihnen jedoch auch die Möglichkeit, bei Bedarf ein ‚Zielparameter zu bestimmen. Sie rufen die Transaktion also nur ab, wenn Sie sie benötigen (beispielsweise bei einem Event Handler, etwa durch Bereitstellen einer Schaltfläche in der Benutzeroberfläche usw.).


(1) Dieses Plug-in wird Ihnen von Ihren fantastischen Nuxeo Solutions Architekten bereitgestellt, zu denen jeder von uns die jeweils benötigte Funktion beigetragen hat (einer von uns hat damit begonnen und die Extraktion erstellt, einer hat optionale Parameter und ein anderer Unittests hinzugefügt, Fehler behoben usw. Die reinste Teamarbeit!)


Etikettiert: Nuxeo Studio, How to