Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

FormData.append()

这篇翻译不完整。请帮忙从英语翻译这篇文章

The append() method of the FormData interface appends a new value onto an existing key inside a FormData object, or adds the key if it does not already exist.

The difference between FormData.set and append() is that if the specified key already exists, FormData.set will overwrite all existing values with the new one, whereas append() will append the new value onto the end of the existing set of values.

Note: This method is available in Web Workers.

语法

There are two versions of this method: a two and a three parameter version:

formData.append(name, value);
formData.append(name, value, filename);

参数

name
The name of the field whose data is contained in value.
value
The field's value. This can be a USVString or Blob (including subclasses such as File).
filename 可选
The filename reported to the server (a USVString), when a Blob or File is passed as the second parameter. The default filename for Blob objects is "blob". The default filename for File objects is the file's filename.

注意: If you specify a Blob as the data to append to the FormData object, the filename that will be reported to the server in the "Content-Disposition" header used to vary from browser to browser.

返回值

示例

下面的代码创建了一个空的 FormData 对象:

var formData = new FormData(); // Currently empty

你可以通过 FormData.append 往对象里加入键值对:

formData.append('username', 'Chris');
formData.append('userpic', myFileInput.files[0], 'chris.jpg');

As with regular form data, you can append multiple values with the same name. For example (and being compatible with PHP's naming conventions by adding [] to the name):

formData.append('userpic[]', myFileInput1.files[0], 'chris1.jpg');
formData.append('userpic[]', myFileInput2.files[0], 'chris2.jpg');

This technique makes it simpler to process multi-file uploads because the resultant data structure is more conducive to looping.

规范

Specification Status Comment
XMLHttpRequest
append()
Living Standard Initial definition

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 7 4.0 (2.0)[1] 10 12 5
append with filename (Yes) 22.0 (22.0) ? ? ?
Available in web workers (Yes) 39.0 (39.0) ? ? ?
Feature Android Chrome for Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 3.0[2] ? 4.0 (2.0)[1] 1.0.1 ?

12

?
append with filename ? ? 22.0 (22.0) 1.2 ? ? ?
Available in web workers ? ? 39.0 (39.0) ? ? ? ?

[1] Prior to Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4), if you specified a Blob as the data to append to the object, the filename reported in the "Content-Disposition" HTTP header was an empty string; this resulted in errors being reported by some servers. Starting in Gecko 7.0 the filename "blob" is sent.

[2] XHR in Android 4.0 sends empty content for FormData with blob.

相关链接

文档标签和贡献者

 此页面的贡献者: wth
 最后编辑者: wth,