We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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

Метод 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: Если вы укажете Blob в качестве данных для включения в объект FormData, имя файла будет указано для сервера в заголовке "Content-Disposition" и может отличаться от браузера к браузеру.

Возвращает

Пустота.

Пример

Данная строка кода создает пустой 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

Поддержка

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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.

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

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

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