Window: showSaveFilePicker() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,并且在某些或所有支持的浏览器中可用。

实验性:这是一个实验性技术
在生产环境中使用此功能前,请仔细查看浏览器兼容性表格

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

一个Object,其键设置为MIME 类型,值是一个Array的文件扩展名(有关示例,请参见下文)。

返回值

一个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 的浏览器中加载。

另请参阅