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
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 commeFile). Si aucune de ces options n'est définie, la valeur est convertie en chaîne de caractères. filenameFacultatif-
Le nom de fichier envoyé au serveur (une chaîne de caractères), quand un
Blobou unFileest passé en second paramètre. Le nom de fichier par défaut pour des objetsBlobest "blob". Le nom de fichier par défaut pour des objetsFileest 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
formData.append("username", "Chris");
Lorsque la valeur est un Blob (ou un File), vous pouvez définir son nom avec le paramètre filename:
formData.append("user-pic", maSaisieFichier.files[0], "chris.jpg");
Comme pour un formulaire classique, vous pouvez ajouter plusieurs valeurs pour la même clé :
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 :
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
- Utiliser des objets
FormData - L'élément HTML
<form>