Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.
Метод append()
из интерфейса FormData
добавляет новое значение в существующий ключ внутри объекта FormData
, или создает ключ, в случае если он отсутствует.
Разница между FormData.set
и append()
в том, что если заданный ключ уже существует, FormData.set
заменит данные в нем на новые, а append()
добавит новое значение к остальным в конец.
Примечание: Данный метод также доступен в Web Workers.
Синтаксис
Существует две формы использования данной функции: с двумя и тремя параметрами:
formData.append(name, value); formData.append(name, value, filename);
Параметры
name
- Имя поля, которое будет содержать данные из
value
. value
- Значение поля. В варианте с двумя параметрами, это является
USVString
, если значение не является строкой, то оно будет в нее конвертировано. В варианте с тремя параметрами это может бытьBlob
,File
, илиUSVString
, И снова, если не один из них не указан в значении то оно будет конвертировано в строку. filename
Необязательный- Имя файла которое будет отправлено серверу (
USVString
), когдаBlob
илиFile
прошел проверку как второй параметр. Стандартное имя файла дляBlob
объектов это "blob".
Note: 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');
Также вы можете использовать обозначения массива для первого аргумента:
formData.append('userpic[]', myFileInput1.files[0], 'chris1.jpg'); formData.append('userpic[]', myFileInput2.files[0], 'chris2.jpg');
Эта техника позволяет упростить мультифайловую загрузку данных потому-что результате структура данных является более благоприятной для цикла.
Спецификации
Спецификация | Состояние | Заметки |
---|---|---|
XMLHttpRequest Определение 'append()' в этой спецификации. |
Живой стандарт | Initial definition |
Поддержка
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 7 | 4.0 (2.0)[1] | 10 | 12 | 5 |
append with filename | (Да) | 22.0 (22.0) | ? | ? | ? |
Available in web workers | (Да) | 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 в Android 4.0 отправляет пустое содерживое FormData с blob.