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 Dateiauswahldialog an, der es einem Benutzer ermöglicht, eine oder mehrere Dateien auszuwählen und gibt ein Handle für die Datei(en) zurück.
Syntax
showOpenFilePicker()
showOpenFilePicker(options)
Parameter
optionsOptional-
Ein Objekt, das Optionen enthält, die wie folgt sind:
excludeAcceptAllOptionOptional-
Ein boolescher Wert, der standardmäßig auf
falsegesetzt ist. Standardmäßig sollte der Picker eine Option beinhalten, um keine Dateitypfilter anzuwenden (ausgelöst mit der unten genannten Typ-Option). Wenn diese Option auftruegesetzt wird, ist diese Option nicht verfügbar. idOptional-
Durch die Angabe einer ID kann der Browser verschiedene Verzeichnisse für unterschiedliche IDs merken. Wenn dieselbe ID für einen anderen Picker verwendet wird, öffnet sich der Picker im gleichen Verzeichnis.
multipleOptional-
Ein boolescher Wert, der standardmäßig auf
falsegesetzt ist. Wenn auftruegesetzt, können mehrere Dateien ausgewählt werden. startInOptional-
Ein
FileSystemHandleoder ein bekanntes Verzeichnis ("desktop","documents","downloads","music","pictures"oder"videos") in dem der Dialog geöffnet werden soll. typesOptional-
Ein
Arrayvon erlaubten Dateitypen zur Auswahl. Jedes Element ist ein Objekt mit den folgenden Optionen:descriptionOptional-
Eine optionale Beschreibung der Kategorie der erlaubten Dateitypen. Standardwert ist ein leerer String.
accept-
Ein
Objectmit den Schlüsseln, die auf den MIME-Typ gesetzt sind, und den Werten alsArrayvon Dateiendungen (siehe unten für ein Beispiel).
Rückgabewert
Ein Promise, dessen Fulfillment-Handler ein Array von FileSystemFileHandle-Objekten erhält.
Ausnahmen
AbortErrorDOMException-
Wird ausgelöst, wenn der Benutzer die Eingabeaufforderung ohne Auswahl abbricht oder wenn der User-Agent feststellt, dass ausgewählte Dateien zu sensibel oder gefährlich sind.
SecurityErrorDOMException-
Wird ausgelöst, wenn der Aufruf durch die Same-Origin-Policy blockiert wurde oder nicht durch eine Benutzerinteraktion wie das Drücken eines Buttons erfolgt ist.
TypeError-
Wird ausgelöst, wenn Akzeptanztypen nicht verarbeitet werden können, was passieren kann, wenn:
- Ein Schlüsselstring der
accept-Optionen eines Elements in dentypes-Optionen keinen gültigen MIME-Typ parsen kann. - Ein Wertstring der
accept-Optionen eines Elements in dentypes-Optionen ungültig ist, zum Beispiel, wenn er nicht mit.beginnt und mit.endet oder wenn er ungültige Codepunkte enthält und seine Länge mehr als 16 beträgt. - Die
types-Optionen leer sind und dieexcludeAcceptAllOption-Optionentruesind.
- Ein Schlüsselstring 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 für den Aufruf der Methode. Wir erlauben die Auswahl von Bilddateitypen, ohne Option, alle Dateitypen zuzulassen 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 Dateiauswahldialog 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
Loading…