Maison  >  Article  >  interface Web  >  L'objet FormData télécharge des fichiers

L'objet FormData télécharge des fichiers

PHPz
PHPzoriginal
2017-04-04 13:56:071559parcourir

<a href="http://www.php.cn/wiki/125.html" target="_blank">For</a>mDataObject peut être simulé à l'aide d'une série de paires clé-valeur A remplissez le formulaire, puis utilisez <a href="http://www.php.cn/wiki/1527.html" target="_blank">XML<code><a href="http://www.php.cn/wiki/1527.html" target="_blank">XML</a>HttpRequestHttpRequest pour envoyer ce" formulaire ".

Il existe des instructions détaillées pour utiliser l'objet FormData sur le site Web Mozilla Developer. FormData

Mais la partie

téléchargement du fichier n'a que la partie inférieure L'objet layer envoie une demande de téléchargement, alors comment passer <a href="http://www.php.cn/wiki/1495.html" target="_blank">jQuery<code>XMLHttpRequest code> <a href="http://www.php.cn/wiki/1495.html" target="_blank">jQuery</a>Qu'en est-il du téléchargement ? AjaxCet article explique comment télécharger des fichiers à l'aide de
jQuery objets FormData

Utilisation de la

initialisation du formulaire<form>méthode objet pour télécharger des fichiers<.>FormDataCode HTML

<form id="uploadForm" enctype="multipart/form-data">
    <input id="file" type="file" name="file"/>
    <button id="upload" type="button">upload</button>
</form>
javascript

Code

Quelques points à noter ici :
$.ajax({
    url: '/upload',
    type: 'POST',
    cache: false,
    data: new FormData($('#uploadForm')[0]),
    processData: false,
    contentType: false
}).done(function(res) {
}).fail(function(res) {});

  • est défini sur

    Étant donné que la valeur processData est un objet false, il n'est pas nécessaire de traiter les données. L'attribut dataFormData

    est ajouté au. La balise
  • <form>enctype="multipart/form-data" est définie sur

    , le téléchargement de fichiers ne nécessite pas de
  • mise en cache
  • Parce que

    . 🎜> l'objet est construit à partir du formulaire cache et l'attribut false a été déclaré, il est défini sur false après que

  • est téléchargé sur le serveur. Le code doit être utilisé. le nom du paramètre de requête
  • de

    pour obtenir l'objet du flux d'entrée du fichier, car contentType est déclaré dans false<form> s'il n'est pas construit à l'aide du formulaire FormData 🎜>Comment faire<. l>enctype="multipart/form-data"

    Utiliser l'objet
  • pour ajouter des champs

Code HTMLfileIl n'y a pas de balise <input> ici non plus Il n'y a pas de name="file" attribut.

code javascript <form>FormData

Il y a plusieurs différences ici : le deuxième paramètre de

FormData

Doit être un objet fichier, c'est-à-dire que
<p id="uploadForm">
    <input id="file" type="file"/>
    <button id="upload" type="button">upload</button>
</p>

<form>enctype="multipart/form-data"

doit également être défini sur "false" à partir du code

. Vous pouvez voir qu'une balise

peut télécharger plusieurs fichiers
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
    url: '/upload',
    type: 'POST',
    cache: false,
    data: formData,
    processData: false,
    contentType: false
}).done(function(res) {
}).fail(function(res) {});
. ajoutez l'attribut

ou

dans
    pour lire les fichiers côté serveur
  • À partir de <a href="http://www.php.cn/wiki/.%201516.html" target="_blank">Servlet<code>append() 3.0, vous pouvez passer $('#file')[0].files[0] ou

    Deux
  • interfaces
  • pour obtenir les fichiers téléchargés.

    Pas grand chose à dire ici. Pour plus de détails, veuillez vous référer au didacticiel du site officiel Téléchargement de fichiers avec la technologie de servlet Java et à l'exemple d'application fileuploadcontentType

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn