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 ?
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.
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é.
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 :
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); } }); });
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'.
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!