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
853 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!

source:php.cn
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