Aujourd'hui, je vais vous donner une introduction détaillée à l'objet FormData. Créons un objet FormData à partir de zéro, puis ajoutons des valeurs clés à l'objet via la méthode append(). Veuillez voir le cas
var formData = new FormData(); formData.append("username", "Groucho"); formData.append("accountnum", 123456); // number 123456 is immediately converted to a string "123456" // HTML file input, chosen by user formData.append("userfile", fileInputElement.files[0]); // JavaScript file-like object var content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file... var blob = new Blob([content], { type: "text/xml"}); formData.append("webmasterfile", blob); var request = new XMLHttpRequest(); request.open("POST", "http://foo.com/submitform.php");
contiennent tous deux le fichier (fichier). Le numéro attribué au champ "accountnum" est directement converti en string par la méthode FormData.append() (la valeur du champ peut être un Blob, un File, ou une chaîne : si la valeur est les deux S'il ne s'agit pas d'un Blob ou d'un Fichier, la valeur sera convertie en chaîne).
Cet exemple crée une instance FormData contenant les champs "username", "accountnum", "userfile" et "webmasterfile", puis utilise la méthode send() de l'objet XMLHttpRequest pour envoyer les données du formulaire. Le champ « webmasterfile » est un Blob. Un objet Blob représente les données brutes d'un objet fichier. Mais les données représentées par Blob ne doivent pas nécessairement être des données au format JavaScript natif. L'interface de fichier est basée sur Blob, héritant de la fonctionnalité Blob et étendant sa prise en charge dessystèmes de fichiers des utilisateurs. Pour construire un Blob, appelez le constructeur Blob().
Obtenir un objet FormData à partir d'un Afin d'obtenir un objet FormData contenant des données de formulaire existantes, vous devez spécifier l'élément de formulaire lors de la création de l'objet FormData .var formData = new FormData(someFormElement);
var formElement = document.querySelector("form"); var request = new XMLHttpRequest(); request.open("POST", "submitform.php"); request.send(new FormData(formElement));
var formElement = document.querySelector("form"); var formData = new FormData(formElement); var request = new XMLHttpRequest(); request.open("POST", "submitform.php"); formData.append("serialnumber", serialNumber++); request.send(formData);