Window: showOpenFilePicker() method
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
Parameters
options
Optional
-
An object containing options, which are as follows:
excludeAcceptAllOption
Optional
-
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 to true
means that option is not available.
id
Optional
-
By specifying an ID, the browser can remember different directories for different IDs. If the same ID is used for another picker, the picker opens in the same directory.
multiple
Optional
-
A boolean value that defaults to false
. When set to true
multiple files may be selected.
startIn
Optional
-
A FileSystemHandle
or a well known directory ("desktop"
, "documents"
, "downloads"
, "music"
, "pictures"
, or "videos"
) to open the dialog in.
-
types
-
An Array
of allowed file types to pick. Each item is an object with the following options:
description
Optional
-
An optional description of the category of files types allowed. Defaults to an empty string.
-
accept
-
An Object
with the keys set to the MIME type and the values an Array
of file extensions (see below for an example).
Return value
A Promise
whose fulfillment handler receives an Array
of FileSystemFileHandle
objects.
Exceptions
AbortError
DOMException
-
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.
SecurityError
DOMException
-
Thrown if the call was blocked by the same-origin policy or it was not called via a user interaction such as a button press.
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.
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.
let fileHandle;
async function getFile() {
[fileHandle] = await window.showOpenFilePicker(pickerOpts);
}
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
showOpenFilePicker |
86 |
86 |
No |
No |
72 |
No |
No |
No |
No |
No |
No |
No |
See also