Window: showSaveFilePicker() 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 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()
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 totrue
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.
startIn
Optional-
A
FileSystemHandle
or a well known directory ("desktop"
,"documents"
,"downloads"
,"music"
,"pictures"
, or"videos"
) to open the dialog in. suggestedName
Optional-
A
String
. The suggested file name. types
Optional-
An
Array
of allowed file types to save. Each item is an object with the following options:description
Optional-
An optional description of the category of files types allowed. Default to be an empty string.
accept
-
An
Object
with the keys set to the MIME type and the values anArray
of file extensions (see below for an example).
Return value
A Promise
whose fulfillment handler receives a FileSystemFileHandle
object.
Exceptions
AbortError
DOMException
-
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.
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.
TypeError
-
Thrown if accept types can't be processed, which may happen if:
- Any key string of the
accept
options of any item intypes
options can't parse a valid MIME type. - Any value string(s) of the
accept
options of any item intypes
options 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
types
options is empty and theexcludeAcceptAllOption
options istrue
.
- Any key string of the
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
Specification |
---|
File System Access # api-showsavefilepicker |
Browser compatibility
BCD tables only load in the browser