Maison >développement back-end >tutoriel php >Comment soumettre un formulaire de téléchargement de fichier à l'aide de jQuery Ajax ?

Comment soumettre un formulaire de téléchargement de fichier à l'aide de jQuery Ajax ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-11 07:58:11550parcourir

How to Submit a File Upload Form Using jQuery Ajax?

Téléchargement de fichiers à l'aide de la sérialisation jQuery

Vous soumettez un formulaire via Ajax à l'aide de la fonction de sérialisation jQuery. Cependant, vous rencontrez des problèmes lorsque le formulaire inclut un champ. Les données du formulaire sérialisé n'incluent pas le fichier et l'impression de $_FILES donne un résultat vide.

Solution : Utilisation de l'objet FormData

Pour résoudre ce problème, vous pouvez utiliser l'objet FormData. Il est compatible avec tout type de formulaire, y compris ceux avec des entrées de fichier. Voici comment l'implémenter :

$(document).on("submit", "form", function(event) {
    event.preventDefault();
    $.ajax({
        url: $(this).attr("action"),
        type: $(this).attr("method"),
        dataType: "JSON",
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function (data, status) {

        },
        error: function (xhr, desc, err) {
            
        }
    });        
});

En utilisant l'objet FormData, vous pouvez transmettre le fichier avec d'autres données de formulaire dans la requête Ajax. Les options processData et contentType sont définies sur false pour empêcher jQuery de gérer les données et le type de contenu et permettre au navigateur de gérer correctement la soumission du formulaire.

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