Maison > développement back-end > tutoriel php > Comment télécharger efficacement des fichiers en utilisant AJAX et PHP ?

Comment télécharger efficacement des fichiers en utilisant AJAX et PHP ?

Mary-Kate Olsen
Libérer: 2024-12-04 13:51:10
original
340 Les gens l'ont consulté

How to Effectively Download Files Using AJAX and PHP?

Comment télécharger un fichier via AJAX en PHP

Le téléchargement de fichiers via un appel AJAX en PHP nécessite des approches créatives au-delà des méthodes AJAX conventionnelles. Voici comment relever ce défi :

Au lieu d'utiliser AJAX pour les téléchargements de fichiers, pensez à ouvrir une nouvelle fenêtre et à définir son adresse sur le lien de téléchargement. Il s'agit d'une technique simple et efficace.

Vous pouvez également utiliser la propriété document.location de JavaScript pour rediriger le navigateur de l'utilisateur directement vers le lien de téléchargement. Voici un exemple :

function csv() {
  ajaxRequest = ajax();
  postdata = "data=" + document.getElementById("id").value;
  ajaxRequest.onreadystatechange = function () {
    var ajaxDisplay = document.getElementById('ajaxDiv');
    if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
      document.location = 'download.php?filename=' + ajaxRequest.responseText;
    }
  };
  ajaxRequest.open("POST", "csv.php", false);
  ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  ajaxRequest.send(postdata);
}
Copier après la connexion

Ce code crée un script PHP distinct appelé download.php, responsable du téléchargement du fichier spécifié dans le paramètre filename.

Dans download.php, utilisez ce qui suit extrait de code pour forcer le téléchargement du fichier :

$fileName = 'file.csv';
$downloadFileName = 'newfile.csv';

if (file_exists($fileName)) {
  header('Content-Description: File Transfer');
  header('Content-Type: text/csv');
  header('Content-Disposition: attachment; filename='.$downloadFileName);
  ob_clean();
  flush();
  readfile($fileName);
  exit;
}
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