Window: showSaveFilePicker() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

Window 介面的 showSaveFilePicker() 方法會顯示一個檔案選擇器,允許使用者透過選擇現有檔案或為新檔案輸入名稱來儲存檔案。

語法

js
showSaveFilePicker()
showSaveFilePicker(options)

引數

options 可選

包含選項的物件,選項如下:

excludeAcceptAllOption 可選

一個布林值,預設為 false。預設情況下,檔案選擇器應包含一個選項,用於不應用任何檔案型別過濾器(透過下面的型別選項啟動)。將此選項設定為 true 意味著該選項不可用

id 可選

透過指定 ID,瀏覽器可以為不同的 ID 記住不同的目錄。如果將相同的 ID 用於另一個選擇器,則該選擇器將在同一目錄中開啟。

startIn 可選

一個 FileSystemHandle 或一個眾所周知的目錄("desktop""documents""downloads""music""pictures""videos"),用於開啟對話方塊。

suggestedName 可選

一個 String。建議的檔名。

types 可選

一個 Array,其中包含允許儲存的檔案型別。每個項都是一個具有以下選項的物件:

description 可選

允許的檔案型別類別的可選描述。預設為空字串。

accept

一個 Object,其鍵設定為 MIME 型別,值設定為副檔名的 Array(請參閱下面的示例)。

返回值

一個 Promise,其履行處理程式會收到一個 FileSystemFileHandle 物件。

異常

AbortError DOMException

如果使用者在未選擇或輸入檔案的情況下關閉檔案選擇器,或者使用者代理認為任何選定的檔案過於敏感或危險,則丟擲此錯誤。

SecurityError DOMException

如果呼叫被 同源策略 阻止,或者不是透過使用者互動(例如按鈕按下)呼叫,則丟擲此錯誤。

TypeError

如果無法處理接受型別,則丟擲此錯誤,這可能發生在以下情況:

  • 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

瀏覽器相容性

另見