Window: showOpenFilePicker()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die showOpenFilePicker()
-Methode der Window
-Schnittstelle zeigt einen Datei-Auswahldialog an, mit dem ein Benutzer eine oder mehrere Dateien auswählen kann, und gibt eine Referenz auf die Datei(en) zurück.
Syntax
showOpenFilePicker()
Parameter
options
Optional-
Ein Objekt, das Optionen enthält, wie folgt:
excludeAcceptAllOption
Optional-
Ein boolescher Wert, der standardmäßig auf
false
gesetzt ist. Standardmäßig sollte der Auswahl-Dialog eine Option enthalten, um keine Dateityp-Filter anzuwenden (diese werden mit der unten beschriebenentypes
-Option festgelegt). Wenn diese Option auftrue
gesetzt wird, ist diese Option nicht verfügbar. id
Optional-
Durch das Angeben einer ID kann sich der Browser unterschiedliche Verzeichnisse für verschiedene IDs merken. Falls dieselbe ID für einen anderen Auswahldialog verwendet wird, öffnet sich der Dialog im selben Verzeichnis.
multiple
Optional-
Ein boolescher Wert, der standardmäßig auf
false
gesetzt ist. Wenn auftrue
gesetzt, können mehrere Dateien ausgewählt werden. startIn
Optional-
Ein
FileSystemHandle
oder ein bekanntes Verzeichnis ("desktop"
,"documents"
,"downloads"
,"music"
,"pictures"
oder"videos"
) zum Öffnen des Dialogs. types
Optional-
Ein
Array
von erlaubten Dateitypen für die Auswahl. Jedes Element ist ein Objekt mit folgenden Optionen:description
Optional-
Eine optionale Beschreibung der Kategorie der erlaubten Dateitypen. Standardmäßig leer.
accept
-
Ein
Object
mit den Schlüsseln, die auf einen MIME-Typ gesetzt sind, und den Werten, die einArray
von Dateierweiterungen darstellen (siehe unten für ein Beispiel).
Rückgabewert
Ein Promise
, dessen Fulfillment-Handler ein Array
von FileSystemFileHandle
-Objekten erhält.
Ausnahmen
AbortError
DOMException
-
Wird ausgelöst, wenn der Benutzer den Dialog schließt, ohne eine Auswahl zu treffen, oder wenn die Benutzerauswahl vom User-Agent als zu sensibel oder gefährlich angesehen wird.
SecurityError
DOMException
-
Wird ausgelöst, wenn der Aufruf durch die Same-Origin-Policy blockiert wurde oder nicht über eine Benutzerinteraktion, wie z. B. das Drücken eines Buttons, initiiert wurde.
TypeError
-
Wird ausgelöst, wenn die akzeptierten Typen nicht verarbeitet werden können, was in diesen Fällen auftreten kann:
- Wenn irgendein Schlüssel-String der
accept
-Optionen eines Elements in dentypes
-Optionen keinen gültigen MIME-Typ darstellt. - Wenn irgendein Wert-String der
accept
-Optionen eines Elements in dentypes
-Optionen ungültig ist, beispielsweise wenn er nicht mit einem.
beginnt, mit einem.
endet, ungültige Codepunkte enthält oder länger als 16 Zeichen ist. - Wenn die
types
-Option leer ist und dieexcludeAcceptAllOption
-Option auftrue
gesetzt ist.
- Wenn irgendein Schlüssel-String der
Sicherheit
Vorübergehende Benutzeraktivierung ist erforderlich. Der Benutzer muss mit der Seite oder einem UI-Element interagieren, damit diese Funktion funktioniert.
Beispiele
Hier setzen wir das Optionsobjekt, das an die Methode übergeben wird. Wir erlauben die Auswahl von Bilddateitypen, ohne die Möglichkeit, alle Dateitypen auszuwählen oder mehrere Dateien auszuwählen.
const pickerOpts = {
types: [
{
description: "Images",
accept: {
"image/*": [".png", ".gif", ".jpeg", ".jpg"],
},
},
],
excludeAcceptAllOption: true,
multiple: false,
};
Als Nächstes können wir eine asynchrone Funktion erstellen, die den Datei-Auswahldialog anzeigt und die ausgewählte Datei zurückgibt.
// create a reference for our file handle
let fileHandle;
async function getFile() {
// open file picker, destructure the one element returned array
[fileHandle] = await window.showOpenFilePicker(pickerOpts);
// run code with our fileHandle
}
Spezifikationen
Specification |
---|
File System Access # api-showopenfilepicker |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
showOpenFilePicker |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.