Get to know MDN better
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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).
An object containing options, which are as follows:
excludeAcceptAllOption OptionalA 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 OptionalBy 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 OptionalA boolean value that defaults to false. When set to true multiple files may be selected.
startIn OptionalA FileSystemHandle or a well known directory ("desktop", "documents", "downloads", "music", "pictures", or "videos") to open the dialog in.
types OptionalAn Array of allowed file types to pick. Each item is an object with the following options:
description OptionalAn optional description of the category of files types allowed. Defaults to an empty string.
acceptAn Object with the keys set to the MIME type and the values an Array of file extensions (see below for an example).
A Promise whose fulfillment handler receives an Array of FileSystemFileHandle objects.
Thrown if the user dismisses the prompt without making a selection, or if the user agent deems any selected files too sensitive or dangerous.
SecurityError DOMExceptionThrown if the call was blocked by the same-origin policy or it was not called via a user interaction such as a button press.
TypeErrorThrown if accept types can't be processed, which may happen if:
Transient user activation is required. The user has to interact with the page or a UI element in order for this feature to work.
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.
Next we can create an asynchronous function which show the file picker and return the selected file.
| File System Access # api-showopenfilepicker |
Enable JavaScript to view this browser compatibility table.
This page was last modified on Nov 30, 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.