Window: showOpenFilePicker() method
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The showOpenFilePicker()
method of the
Window
interface shows a file picker that allows a user to select a file
or multiple files and returns a handle for the file(s).
Syntax
js
showOpenFilePicker()
Parameters
options
Optional-
An object containing options, which are as follows:
multiple
-
A boolean value that defaults to
false
. When set totrue
multiple files may be selected. excludeAcceptAllOption
-
A boolean value that defaults to
false
. By default the picker should include an option to not apply any file type filters (instigated with the type option below). Setting this option totrue
means that option is not available. types
-
An
Array
of allowed file types to pick. Each item is an object with the following options:
Return value
A Promise
whose fulfillment handler receives an Array
of FileSystemFileHandle
objects.
Exceptions
AbortError
-
An AbortError is thrown if a user dismisses the prompt without making a selection or if a file selected is deemed too sensitive or dangerous to be exposed to the website.
Security
Transient user activation is required. The user has to interact with the page or a UI element in order for this feature to work.
Examples
Here we set the options object for passing into the method. We'll allow a selection of image file types, with no option to allow for all files types, or multiple file selection.
js
const pickerOpts = {
types: [
{
description: "Images",
accept: {
"image/*": [".png", ".gif", ".jpeg", ".jpg"],
},
},
],
excludeAcceptAllOption: true,
multiple: false,
};
Next we can create an asynchronous function which show the file picker and return the selected file.
js
// 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
}
Specifications
Specification |
---|
File System Access # api-showopenfilepicker |
Browser compatibility
BCD tables only load in the browser