Maison > développement back-end > tutoriel php > Pourquoi le téléchargement de mon fichier jQuery AJAX vers PHP échoue-t-il malgré l'affichage de « [object FormData] » ?

Pourquoi le téléchargement de mon fichier jQuery AJAX vers PHP échoue-t-il malgré l'affichage de « [object FormData] » ?

Susan Sarandon
Libérer: 2024-12-28 03:51:09
original
947 Les gens l'ont consulté

Why Does My jQuery AJAX File Upload to PHP Fail Despite Showing

Téléchargement de fichiers jQuery AJAX en PHP

Problème : Le téléchargement de fichiers via la requête jQuery AJAX échoue malgré l'affichage par le navigateur de "[object FormData]" et d'un dossier "uploads" vide sur le serveur.

Solution : Pour réussir à télécharger des fichiers à l'aide de jQuery AJAX, un script côté serveur est nécessaire pour gérer le fichier téléchargé et le déplacer vers l'emplacement souhaité.

Script jQuery mis à jour

Le script jQuery mis à jour suivant pointe vers un script PHP côté serveur appelé "upload.php":

$("#upload").on("click", function() {
    var file_data = $("#sortpicture").prop("files")[0];
    var form_data = new FormData();
    form_data.append("file", file_data);
    $.ajax({
        url: 'upload.php',
        dataType: 'text',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,
        type: 'post',
        success: function(php_script_response){
            alert(php_script_response);
        }
    });
});
Copier après la connexion

Script PHP côté serveur

Le script "upload.php" suivant vérifie les erreurs dans le fichier téléchargé et le déplace vers le répertoire "uploads" :

<?php
if (0 < $_FILES['file']['error']) {
    echo 'Error: ' . $_FILES['file']['error'] . '<br>';
} else {
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
?>
Copier après la connexion

Considérations supplémentaires

  • Assurez-vous d'avoir le bon chemin de serveur vers le Répertoire "uploads".
  • Assurez-vous que le répertoire "uploads" est accessible en écriture.
  • Vérifiez votre configuration PHP pour "upload_max_filesize" et "post_max_size" pour vous assurer que vos fichiers de test ne dépassent pas ces limites.

Renommer le fichier à l'aide d'un script côté serveur

Pour renommer le fichier fichier sur le serveur en utilisant PHP :

move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal