Spec-Zone.ru › Web APIs

FormData: метод append()

Базовая поддержка Широко распространена

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в рабочих потоках.

Метод append() интерфейса FormData добавляет новое значение к существующему ключу внутри объекта FormData, или добавляет ключ, если он еще не существует.

Разница между set() и append() заключается в том, что если указанный ключ уже существует, set() перезапишет все существующие значения новым, а append() добавит новое значение в конец существующего набора значений.

Синтаксис

append(name, value)
append(name, value, filename)

Параметры

name

Имя поля, данные которого содержатся в value.

value

Значение поля. Это может быть строка или Blob (включая подклассы, такие как File). Если ни один из них не указан, значение преобразуется в строку.

filename Необязательно

Имя файла, передаваемое серверу (строка), когда в качестве второго параметра передаётся Blob или File. Значение по умолчанию для Blob объектов — "blob". Значение по умолчанию для File объектов — имя файла.

Примечание: Если вы укажете Blob в качестве данных для добавления в объект FormData, имя файла, которое будет передано на сервер в заголовке "Content-Disposition", может отличаться в разных браузерах.

Возвращаемое значение

Ничего (undefined).

Примеры

formData.append("username", "Chris");

Когда значение является Blob (или File), вы можете указать его имя с помощью параметра filename:

formData.append("user-pic", myFileInput.files[0], "chris.jpg");

Как и с обычными данными формы, вы можете добавить несколько значений с одинаковым именем:

formData.append("user-pic", myFileInput.files[0], "chris1.jpg");
formData.append("user-pic", myFileInput.files[1], "chris2.jpg");

Если значение не является строкой или Blob, append() автоматически преобразует его в строку:

formData.append("name", true);
formData.append("name", 72);
formData.getAll("name"); // ["true", "72"]

Спецификации

Спецификация
XMLHttpRequest
# dom-formdata-append

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
append 5 12
4В Firefox 7 и ранее, при указании Blob в качестве данных для добавления в объект, имя файла, передаваемое в заголовке Content-Disposition HTTP, было пустой строкой, что приводило к ошибкам на некоторых серверах. Начиная с Firefox 7, имя файла blob отправляется.
12 5 18
4В Firefox для Android 7 и ранее, при указании Blob в качестве данных для добавления в объект, имя файла, передаваемое в заголовке Content-Disposition HTTP, было пустой строкой, что приводило к ошибкам на некоторых серверах. Начиная с Firefox для Android 7, имя файла blob отправляется.
12 5 1.0
3XHR в Android 4.0 отправляет пустое содержимое для FormData с blob.
filename_parameter 16 12 22 ≤15 6 18 22 ≤14 6 1.0 4.4

См. также

  • Использование объектов FormData
  • <form>

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FormData/append

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API