--- title: FormData.append() slug: Web/API/FormData/append translation_of: Web/API/FormData/append ---
{{APIRef("XMLHttpRequest")}}
Метод append() из интерфейса {{domxref("FormData")}} добавляет новое значение в существующий ключ внутри объекта FormData, или создает ключ, в случае если он отсутствует.
Разница между {{domxref("FormData.set")}} и append() в том, что если заданный ключ уже существует, {{domxref("FormData.set")}} заменит данные в нем на новые, а append() добавит новое значение к остальным в конец.
Примечание: Данный метод также доступен в Web Workers.
Существует две формы использования данной функции: с двумя и тремя параметрами:
formData.append(name, value); formData.append(name, value, filename);
namevalue.valuefilename {{optional_inline}}Note: Если вы укажете {{domxref("Blob")}} в качестве данных для включения в объект FormData, имя файла будет указано для сервера в заголовке "Content-Disposition" и может отличаться от браузера к браузеру.
Пустота.
Данная строка кода создает пустой FormData объект:
var formData = new FormData(); // Currently empty
Вы можете добавлять пару ключ/значение с помощью {{domxref("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');
Эта техника позволяет упростить мультифайловую загрузку данных потому, что в результате структура данных является более благоприятной для цикла.
| Спецификация | Состояние | Заметки |
|---|---|---|
| {{SpecName('XMLHttpRequest','#dom-formdata-append','append()')}} | {{Spec2('XMLHttpRequest')}} | Initial definition |
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 7 | {{CompatGeckoDesktop("2.0")}}[1] | 10 | 12 | 5 |
| append with filename | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("22.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
| Available in web workers | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("39.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Basic support | 3.0[2] | {{CompatUnknown}} | {{CompatGeckoMobile("2.0")}}[1] | 1.0.1 | {{CompatUnknown}} |
12 |
{{CompatUnknown}} |
| append with filename | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop("22.0")}} | 1.2 | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
| Available in web workers | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop("39.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
[1] Prior to Gecko 7.0 {{geckoRelease("7.0")}}, if you specified a {{domxref("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.