files/en-us/web/api/window/showsavefilepicker/index.md
{{APIRef("File System API")}}{{SecureContext_Header}}{{SeeCompatTable}}
The showSaveFilePicker() method of the
{{domxref("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.
showSaveFilePicker()
showSaveFilePicker(options)
options {{Optional_Inline}}
excludeAcceptAllOption {{Optional_Inline}}
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_Inline}}
startIn {{Optional_Inline}}
"desktop", "documents",
"downloads", "music", "pictures", or "videos") to open the dialog in.suggestedName {{Optional_Inline}}
types {{Optional_Inline}}
description {{Optional_Inline}}
accept
A {{jsxref("Promise")}} whose fulfillment handler receives a {{domxref('FileSystemFileHandle')}} object.
AbortError {{domxref("DOMException")}}
SecurityError {{domxref("DOMException")}}
accept options of any item in types options can't parse a valid MIME type.accept options of any item in types 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.types options is empty and the excludeAcceptAllOption options is true.Transient user activation is required. The user has to interact with the page or a UI element in order for this feature to work.
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}}
{{Compat}}