FormData: append() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 Web Workers 中可用。

FormData 介面的 append() 方法用於在 FormData 物件中向現有鍵新增新值,如果鍵不存在,則新增該鍵。

set()append() 的區別在於:如果指定的鍵已存在,set() 會用新值覆蓋所有現有值,而 append() 會將新值新增到現有值集的末尾。

語法

js
append(name, value)
append(name, value, filename)

引數

name

包含 value 中資料的欄位的名稱。

value

欄位的值。這可以是一個字串或 Blob(包括子類,如 File)。如果未指定這些,則值將被轉換為字串。

filename 可選

BlobFile 作為第二個引數傳遞時,報告給伺服器的檔案的名稱(字串)。Blob 物件的預設檔名是“blob”。File 物件的預設檔名是檔案的名稱。

注意: 如果您將 Blob 指定為要附加到 FormData 物件的資料,則在“Content-Disposition”標頭中報告給伺服器的檔名在不同瀏覽器之間可能有所不同。

返回值

無(undefined)。

示例

js
formData.append("username", "Chris");

當值為 Blob(或 File)時,您可以使用 filename 引數指定其名稱。

js
formData.append("user-pic", myFileInput.files[0], "chris.jpg");

與普通表單資料一樣,您可以為同一名稱附加多個值。

js
formData.append("user-pic", myFileInput.files[0], "chris1.jpg");
formData.append("user-pic", myFileInput.files[1], "chris2.jpg");

如果值不是字串或 Blobappend() 會自動將其轉換為字串。

js
formData.append("name", true);
formData.append("name", 72);
formData.getAll("name"); // ["true", "72"]

規範

規範
XMLHttpRequest
# dom-formdata-append

瀏覽器相容性

另見