HTMLInputElement: webkitdirectory Eigenschaft
Die webkitdirectory
Eigenschaft der HTMLInputElement
Schnittstelle spiegelt das webkitdirectory
HTML-Attribut wider, das angibt, dass <input type="file">
Elemente nur Verzeichnisse statt Dateien auswählen können.
Wenn ein Verzeichnis ausgewählt wird, werden das Verzeichnis und seine gesamte Inhaltsstruktur in die Gruppe der ausgewählten Elemente eingeschlossen.
Die ausgewählten Dateisystemeinträge können über die webkitEntries
Eigenschaft abgerufen werden.
Hinweis:
Diese Eigenschaft wird in der Spezifikation webkitdirectory
genannt, weil sie ursprünglich eine Google Chrome-spezifische API war.
Wert
Ein Boolean; true
, wenn das <input>
Element nur die Auswahl von Verzeichnissen erlauben soll, oder false
, wenn nur Dateien wählbar sein sollen.
Beschreibung
Wenn webkitdirectory
auf true
gesetzt wird, bietet das Eingabeelement Verzeichnisse zur Auswahl an, statt Dateien.
Nachdem der Benutzer ein Verzeichnis ausgewählt hat, wird die File
Eigenschaft in den zurückgegebenen files
Objekten mit dem File.webkitRelativePath
Attribut auf einen Pfad relativ zum ausgewählten Überverzeichnis gesetzt.
Betrachten Sie zum Beispiel dieses Dateisystem:
PhotoAlbums ├── Birthdays │ ├── Jamie's 1st birthday │ │ ├── PIC1000.jpg │ │ └── PIC1044.jpg │ └── Don's 40th birthday │ ├── PIC2343.jpg │ └── PIC2356.jpg └── Vacations └── Mars ├── PIC5556.jpg ├── PIC5684.jpg └── PIC5712.jpg
Wenn der Benutzer das Verzeichnis PhotoAlbums
auswählt, enthält die durch files
gemeldete Liste File
Objekte für jede Datei.
Der Eintrag für PIC2343.jpg
hat einen webkitRelativePath
von PhotoAlbums/Birthdays/Don's 40th birthday/PIC2343.jpg
.
Dies macht es möglich, die Hierarchie des ausgewählten Verzeichnisses zu bestimmen, obwohl die FileList
flach ist.
Hinweis:
Das Verhalten von webkitRelativePath
ist in Chromium < 72 unterschiedlich.
Weitere Details finden Sie in diesem Fehlerbericht.
Beispiele
In diesem Beispiel wird ein Verzeichnisauswahlfeld präsentiert, das es dem Benutzer ermöglicht, ein oder mehrere Verzeichnisse auszuwählen.
Wenn das change
Ereignis eintritt, wird eine Liste aller in den ausgewählten Verzeichnishierarchien enthaltenen Dateien erstellt und angezeigt.
HTML
<input type="file" id="file-picker" name="fileList" webkitdirectory multiple />
<ul id="listing"></ul>
JavaScript
document.getElementById("file-picker").addEventListener("change", (event) => {
let output = document.getElementById("listing");
for (const file of event.target.files) {
let item = document.createElement("li");
item.textContent = file.webkitRelativePath;
output.appendChild(item);
}
});
Ergebnis
Spezifikationen
Specification |
---|
File and Directory Entries API> # dom-htmlinputelement-webkitdirectory> |
Browser-Kompatibilität
Loading…