Was ist Directory Upload Input Generator?
Das webkitdirectory-Attribut an einem input type=file-Element ermöglicht Benutzern die Auswahl eines gesamten Ordners anstelle einzelner Dateien. Wenn ein Ordner ausgewählt wird, füllt der Browser die input.files-FileList mit allen Dateien aus dem ausgewählten Verzeichnis und seinen Unterverzeichnissen. Jede Datei hat eine webkitRelativePath-Eigenschaft, die den Pfad relativ zum ausgewählten Verzeichnis angibt (zum Beispiel images/logo.png). Das standardisierte directory-Attribut bietet dieselbe Funktionalität in modernen Browsern.
Kurze Antwort
Verwenden Sie input type=file mit dem webkitdirectory-Attribut, um Benutzern die Auswahl ganzer Ordner zum Hochladen zu ermöglichen. Jede Datei im ausgewählten Verzeichnis legt eine webkitRelativePath-Eigenschaft offen, die ihren Pfad relativ zum gewählten Ordner anzeigt. Unterstützt in Chrome 30+, Edge 12+, Safari 11.1+ und Firefox 50+. Das generierte HTML enthält eine Drag-and-Drop-Zone, Dateiliste mit Verzeichnisbaumansicht und Unterstützung für Einzeldatei-, Mehrfachdatei- und Verzeichnismodi.
Last updated: 2026-06-01
Einschränkungen
- webkitRelativePath ist nur für Dateien verfügbar, die über eine Verzeichnisauswahl ausgewählt wurden - per Drag-and-Drop vom Betriebssystem hinzugefügte Dateien haben in Firefox und Safari keine Pfadinformationen, obwohl Chrome und Edge Drag-and-Drop von Verzeichnissen unterstützen.
- Die Browserunterstützung für Verzeichniseingaben ist stark in Chromium-basierten Browsern und Firefox, aber Safaris Implementierung hat historisch hinterhergehinkt. Das standardisierte directory-Attribut wird in Safari 17+ unterstützt, aber ältere Safari-Versionen benötigen das webkitdirectory-Präfix.
- Große Verzeichnisauswahlen (tausende Dateien) können den Browser-Tab einfrieren, während die Dateiliste befüllt und angezeigt wird. Verwenden Sie Lazy Rendering oder einen Web Worker für Produktionsbereitstellungen mit großen Verzeichnissen.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
So nutzt du dieses Tool
- Wählen Sie den Upload-Modus: Einzeldatei (eine Datei auf einmal), Mehrere Dateien (mehrere Dateien auswählen) oder Verzeichnis (einen gesamten Ordner auswählen).
- Konfigurieren Sie die Drag-and-Drop-Zone: aktivieren oder deaktivieren Sie Drag-and-Drop-Unterstützung, passen Sie den Drop-Zonen-Text und das aktive Zustands-Styling (Rahmenfarbe, Hintergrund oder Overlay) an.
- Passen Sie die Dateilisten-Anzeige an: zeigen Sie Dateinamen, Größen, Typen und den webkitRelativePath für Verzeichnis-Uploads an. Wechseln Sie zwischen einer flachen Liste und einer Baumansicht, die die Verzeichnisstruktur erhält.
- Kopieren Sie das generierte HTML mit eingebettetem CSS und JavaScript. Die Ausgabe enthält ein vollständiges, in sich geschlossenes Datei-Upload-Interface mit Ereignisbehandlung für das change-Event und Drag-and-Drop-Ereignisse.
Wofür du es nutzen kannst
- Erstellen Sie eine Upload-Oberfläche für eine Dokumentationsseite, die ganze Ordner mit Bildern oder Markdown-Dateien akzeptiert und dabei die Verzeichnisstruktur beibehält.
- Erstellen Sie ein Bulk-Datei-Upload-Tool für ein CMS, bei dem Redakteure einen Asset-Ordner per Drag-and-Drop ablegen und die relativen Pfade für URL-Zuordnung verwendet werden.
- Entwickeln Sie ein Migrationstool, das einen Ordner mit exportierten Inhalten akzeptiert und webkitRelativePath verwendet, um die ursprüngliche Verzeichnishierarchie auf dem Server zu rekonstruieren.