Window: showSaveFilePicker() 方法
showSaveFilePicker()
是Window
接口的方法,它显示一个文件选择器,允许用户保存文件。可以通过选择现有文件或输入新文件名来保存文件。
语法
js
showSaveFilePicker()
参数
options
可选-
包含以下选项的对象
excludeAcceptAllOption
可选-
布尔值,默认为
false
。默认情况下,选择器应包含一个选项,用于不应用任何文件类型过滤器(由下面的 type 选项启动)。将此选项设置为true
表示该选项不可用。 id
可选-
通过指定 ID,浏览器可以记住不同 ID 的不同目录。如果相同 ID 用于另一个选择器,则选择器将在同一目录中打开。
startIn
可选-
一个
FileSystemHandle
或一个众所周知的目录("desktop"
、"documents"
、"downloads"
、"music"
、"pictures"
或"videos"
),用于在其中打开对话框。 suggestedName
可选-
一个
String
。建议的文件名。 types
可选-
一个允许保存的文件类型的
Array
。每个项目都是一个包含以下选项的对象description
可选-
允许的文件类型类别的可选描述。默认为空字符串。
accept
返回值
一个Promise
,其 fulfilled 处理程序接收一个FileSystemFileHandle
对象。
异常
AbortError
DOMException
-
如果用户在未选择或输入文件的情况下关闭文件选择器,或者用户代理认为任何选定的文件过于敏感或危险,则抛出此异常。
SecurityError
DOMException
-
如果调用被同源策略阻止,或者未通过用户交互(例如按钮按下)调用,则抛出此异常。
TypeError
-
如果无法处理 accept 类型,则抛出此异常,这可能发生在以下情况下:
types
选项中任何项目的accept
选项的任何键字符串都无法解析为有效的 MIME 类型。types
选项中任何项目的accept
选项的任何值字符串无效,例如,如果它不以.
开头,如果以.
结尾,或者如果它包含任何无效的代码点且长度超过 16。types
选项为空且excludeAcceptAllOption
选项为true
。
安全
需要瞬态用户激活。用户必须与页面或 UI 元素交互才能使用此功能。
示例
以下函数显示一个文件选择器,突出显示要选择的文本文件。
js
async function getNewFileHandle() {
const opts = {
types: [
{
description: "Text file",
accept: { "text/plain": [".txt"] },
},
],
};
return await window.showSaveFilePicker(opts);
}
规范
规范 |
---|
文件系统访问 # api-showsavefilepicker |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。