Окно: метод showOpenFilePicker()
Ограниченная доступность
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Экспериментальная функция: Это экспериментальная технология
Тщательно проверьте таблицу совместимости браузеров перед использованием в производстве.
Метод showOpenFilePicker() интерфейса Window отображает средство выбора файла, позволяющее пользователю выбрать один или несколько файлов и возвращает дескриптор файла(ов).
Синтаксис
showOpenFilePicker()
Параметры
optionsНеобязательный-
Объект, содержащий параметры:
excludeAcceptAllOptionНеобязательный-
Булевое значение, по умолчанию
false. По умолчанию средство выбора должно включать опцию для выбора файлов без фильтрации по типу (инициируется параметром type ниже). Установка этого параметра вtrueозначает, что эта опция не доступна. idНеобязательный-
Указывая идентификатор, браузер может запоминать разные каталоги для разных идентификаторов. Если для другого средства выбора используется тот же идентификатор, средство выбора открывается в том же каталоге.
multipleНеобязательный-
Булевое значение, по умолчанию
false. При установке в значениеtrueможно выбрать несколько файлов. startInНеобязательный-
FileSystemHandleили известный каталог ("desktop","documents","downloads","music","pictures", или"videos"), для открытия диалога. typesНеобязательный-
Массив разрешенных типов файлов для выбора. Каждый элемент — объект со следующими параметрами:
descriptionНеобязательный-
Необязательное описание категории разрешенных типов файлов. По умолчанию пустая строка.
accept-
Объект с ключами, установленным как MIME-тип, и значениями — массив расширений файлов (см. пример ниже).
Возвращаемое значение
Обещание Promise, обработчик выполнения которого получает массив Array объектов FileSystemFileHandle.
Исключения
-
AbortErrorDOMException -
Выбрасывается, если пользователь отменяет запрос без выбора, или если пользовательский агент считает выбранные файлы слишком чувствительными или опасными.
-
SecurityErrorDOMException -
Выбрасывается, если вызов был заблокирован политикой одного происхождения или не был вызван с помощью пользовательского взаимодействия, например, нажатия кнопки.
TypeError-
Выбрасывается, если типы accept не могут быть обработаны, что может произойти, если:
- Любой строковый ключ параметров
acceptлюбого элемента в параметрахtypesне может обработать допустимый MIME-тип. - Любая строковая(ые) значения параметров
acceptлюбого элемента в параметрахtypesнедействительны, например, если не начинаются с.и не заканчиваются на., или если содержат недопустимые кодовые точки, а их длина превышает 16. - Параметры
typesпустые, а параметрыexcludeAcceptAllOptionравныtrue.
- Любой строковый ключ параметров
Безопасность
Временная активация пользователя требуется. Пользователь должен взаимодействовать со страницей или элементом пользовательского интерфейса, чтобы эта функция работала.
Примеры
Здесь мы устанавливаем объект параметров для передачи в метод. Мы будем разрешать выбор типов файлов изображений, без опции разрешения всех типов файлов или выбора нескольких файлов.
const pickerOpts = {
types: [
{
description: "Images",
accept: {
"image/*": [".png", ".gif", ".jpeg", ".jpg"],
},
},
],
excludeAcceptAllOption: true,
multiple: false,
};
Далее мы можем создать асинхронную функцию, которая покажет средство выбора файлов и вернёт выбранный файл.
// 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
}
Спецификации
| Спецификация |
|---|
| File System Access # api-showopenfilepicker |
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
showOpenFilePicker |
86 | 86 | Нет | 72 | Нет | 132 | Нет | Нет | Нет | Нет | 132 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Window/showOpenFilePicker