Maison >développement back-end >tutoriel php >Comment dépanner les téléchargements de fichiers jQuery AJAX avec l'implémentation PHP côté serveur ?

Comment dépanner les téléchargements de fichiers jQuery AJAX avec l'implémentation PHP côté serveur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-31 18:23:09359parcourir

How to Troubleshoot jQuery AJAX File Uploads with PHP Server-Side Implementation?

Téléchargement de fichiers AJAX jQuery avec PHP : dépannage et implémentation côté serveur

Description du problème

La question tourne autour de l'implémentation d'une fonctionnalité de téléchargement de fichiers de base sur une page intranet utilisant jQuery AJAX et PHP. L'utilisateur a configuré le code HTML et jQuery mais rencontre des problèmes pour télécharger le fichier et l'enregistrer dans le répertoire souhaité. De plus, ils demandent conseil pour renommer le fichier côté serveur.

Comprendre le problème

Le script jQuery envoie un formulaire contenant le fichier téléchargé à un script PHP côté serveur via une requête AJAX. . Cependant, le problème réside dans l'absence de script PHP sur le serveur pour traiter le fichier et le déplacer vers le répertoire de téléchargement spécifié.

Solution

Script PHP côté serveur

Pour remédier au problème, un script PHP nommé 'upload.php' est requis sur le serveur. Ce script gérera le téléchargement du fichier et effectuera les opérations nécessaires. Voici le code du script PHP :

<?php

if (0 < $_FILES['file']['error']) {
    echo 'Error: ' . $_FILES['file']['error'] . '<br>';
} else {
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}

?>

Ce script PHP :

  • Vérifie toute erreur lors du téléchargement du fichier et imprime un message approprié.
  • Si aucune erreur ne se produit, il utilise la fonction « move_uploaded_file » pour déplacer le fichier téléchargé de son emplacement temporaire vers les « téléchargements ». répertoire.

Script jQuery mis à jour

Dans le script jQuery, l'URL est modifiée pour pointer vers le script 'upload.php'. De plus, changer le « dataType » en « texte » permet d'afficher la réponse du script PHP, le cas échéant. Le script mis à jour :

$('#upload').on('click', function() {
    var file_data = $('#sortpicture').prop('files')[0];   
    var form_data = new FormData();                  
    form_data.append('file', file_data);
    alert(form_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);
        }
     });
});

Renommer le fichier côté serveur

Dans la solution ci-dessus, le fichier téléchargé conserve son nom d'origine. Pour renommer le fichier, effectuez la modification suivante dans le script PHP :

move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');

Cette ligne remplace le nom du fichier d'origine par 'my_new_filename.whatever' dans le répertoire 'uploads'.

Notes

  • N'oubliez pas de vous assurer que le répertoire 'uploads' existe et est accessible en écriture.
  • Vérifiez vos paramètres de configuration PHP pour 'upload_max_filesize' et 'post_max_size' pour vous assurer que vos fichiers de test ne dépassent pas ces limites.

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