FormData: append() 方法

基线 广泛可用

此功能非常成熟,可以在许多设备和浏览器版本上运行。它已在所有浏览器中可用,自 2015 年 7 月.

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

append() 方法是 FormData 接口的一种方法,用于将新值追加到 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("userpic", myFileInput.files[0], "chris.jpg");

与常规表单数据一样,可以使用相同的名称追加多个值

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

如果值不是字符串或 Blobappend() 会自动将其转换为字符串

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

规范

规范
XMLHttpRequest 标准
# dom-formdata-append

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅