MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

FormData.append()

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Метод 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.

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Zimson, odin3
 Обновлялась последний раз: Zimson,