Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

FormData : méthode append()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Note : Cette fonctionnalité est disponible via les Web Workers.

La méthode append() de l'interface FormData ajoute une nouvelle valeur à une clé existante dans un objet FormData, ou rajoute cette clé et cette valeur quand elle n'existe pas.

La différence entre FormData.set et append() est que, quand la clé existe, FormData.set va remplacer les valeurs existantes avec la nouvelle alors qu' append() va rajouter celle-ci à la fin de l'ensemble des valeurs existantes.

Syntaxe

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

Paramètres

name

Le nom du champ dont les données sont contenues dans value.

value

La valeur du champ. Elle peut être une chaîne de caractères ou un Blob (incluant les sous-classes comme File). Si aucune de ces options n'est définie, la valeur est convertie en chaîne de caractères.

filename Facultatif

Le nom de fichier envoyé au serveur (une chaîne de caractères), quand un Blob ou un File est passé en second paramètre. Le nom de fichier par défaut pour des objets Blob est "blob". Le nom de fichier par défaut pour des objets File est le nom du fichier de l'objet.

Note : Si vous définissez un Blob comme donnée rattachée à un objet de type FormData, le nom de fichier envoyé au serveur dans l'en-tête "Content-Disposition" peut varier selon le navigateur.

Valeur de retour

Aucune (undefined).

Exemples

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

Lorsque la valeur est un Blob (ou un File), vous pouvez définir son nom avec le paramètre filename:

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

Comme pour un formulaire classique, vous pouvez ajouter plusieurs valeurs pour la même clé :

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

Si la valeur n'est ni une chaîne de caractères ni un Blob, append() la convertit automatiquement en chaîne de caractères :

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

Spécifications

Spécification
XMLHttpRequest
# dom-formdata-append

Compatibilité des navigateurs

Voir aussi