web api instance method
Window: showSaveFilePicker() method
Secure contextLimited availability
The showSaveFilePicker() method of the
Window interface shows a file picker that allows a user to save a file.
Either by selecting an existing file, or entering a name for a new file.
Syntax
showSaveFilePicker()
showSaveFilePicker(options)
Parameters
optionsOptional- : An object containing options, which are as follows:
excludeAcceptAllOptionOptional- : 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 totruemeans that option is not available.
- : A boolean value that defaults to
idOptional- : 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.
startInOptional- : A
FileSystemHandleor a well known directory ("desktop","documents","downloads","music","pictures", or"videos") to open the dialog in.
- : A
suggestedNameOptional- : A
String. The suggested file name.
- : A
typesOptional- : An
Arrayof allowed file types to save. Each item is an object with the following options:
- : An
- : An object containing options, which are as follows:
Return value
A Promise whose fulfillment handler receives a FileSystemFileHandle object.
Exceptions
AbortErrorDOMException- : Thrown if the user dismisses the file picker without selecting or inputting a file, or if the user agent deems any selected files too sensitive or dangerous.
SecurityErrorDOMException- : 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.
TypeError- : Thrown if accept types can’t be processed, which may happen if:
- Any key string of the
acceptoptions of any item intypesoptions can’t parse a valid MIME type. - Any value string(s) of the
acceptoptions of any item intypesoptions is invalid, for example, if it does not start with.and if end with., or if it contains any invalid code points and its length is more than 16. - The
typesoptions is empty and theexcludeAcceptAllOptionoptions istrue.
- Any key string of the
- : Thrown if accept types can’t be processed, which may happen if:
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
The following function shows a file picker, with text files highlighted for selection.
async function getNewFileHandle() {
const opts = {
types: [
{
description: "Text file",
accept: { "text/plain": [".txt"] },
},
],
};
return await window.showSaveFilePicker(opts);
}
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.