Maison >interface Web >js tutoriel >Comment puis-je déclencher un téléchargement de fichier à l'aide d'AJAX et quelles sont les meilleures méthodes ?
Téléchargement de fichiers piloté par AJAX : un guide
Dans le domaine du développement Web, il est nécessaire de télécharger des fichiers directement depuis le serveur en utilisant une requête AJAX. Pour y parvenir, diverses approches peuvent être utilisées.
Une approche standard consiste à lancer une requête AJAX en cliquant sur un bouton. Voici un script qui tente cela :
var xhr = new XMLHttpRequest(); xhr.open("GET", "download.php"); xhr.send();
Pour servir le fichier à télécharger, un script PHP comme celui-ci peut être utilisé :
<?php header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename= file.txt"); header("Content-Transfer-Encoding: binary"); readfile("file.txt"); ?>
Cependant, cette méthode peut ne pas produire le résultat souhaité. comportement. Par conséquent, une stratégie alternative est nécessaire.
Solution mise à jour : présentation de l'attribut de téléchargement
L'attribut de téléchargement émerge dans le paysage HTML5. Pris en charge par les principaux navigateurs tels que Firefox et Chrome (et bientôt IE11), cet attribut offre une solution plus simple pour les téléchargements de fichiers.
<a href="file.txt" download="file.txt">Download File</a>
Tant que le fichier réside sur la même origine que le site Web, il peut être téléchargé à l'aide de cet attribut.
Solution héritée : utilisation d'AJAX et de Windows Redirection
Avant l'avènement de l'attribut download, une solution de contournement impliquait l'utilisation d'une requête AJAX ou la manipulation de window.location.
$.ajax({ url: 'download.php', type: 'POST', success: function() { window.location = 'download.php'; } });
Cependant, l'utilisation directe de window.location est une solution plus solution efficace dans ce contexte.
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!