Maison > développement back-end > tutoriel php > Comment déclencher un téléchargement de fichier à l'aide d'AJAX : téléchargement direct ou redirection côté serveur ?

Comment déclencher un téléchargement de fichier à l'aide d'AJAX : téléchargement direct ou redirection côté serveur ?

Mary-Kate Olsen
Libérer: 2024-12-17 00:12:24
original
948 Les gens l'ont consulté

How to Trigger a File Download Using AJAX:  Direct Download or Server-Side Redirect?

Télécharger un fichier avec une requête AJAX

Lorsque vous tentez de lancer une « demande de téléchargement ajax » en cliquant sur un bouton, il est courant d'implémenter du code comme le ci-dessous :

var xhr = new XMLHttpRequest();
xhr.open("GET", "download.php");
xhr.send();
Copier après la connexion

Avec le PHP suivant script :

<?
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename= file.txt");
header("Content-Transfer-Encoding: binary");    
readfile("file.txt");
?>
Copier après la connexion

Cependant, cette approche peut ne pas donner le résultat souhaité. Pour lancer efficacement un téléchargement, envisagez de mettre en œuvre l'une des alternatives suivantes :

Option 1 : utiliser l'attribut "download"

Dans les navigateurs modernes comme Firefox et Chrome, le L'attribut 'download' offre un moyen pratique de lancer des téléchargements à partir d'une page Web sans nécessiter d'interaction côté serveur. Voici un exemple :

<a href="file.txt" download="file.txt">Download</a>
Copier après la connexion

Option 2 : accédez au script de téléchargement à l'aide d'AJAX ou de Window.location

Si l'attribut « téléchargement » n'est pas approprié option, vous pouvez utiliser AJAX ou window.location pour accéder au script de téléchargement. En utilisant AJAX, vous pouvez effectuer une requête asynchrone, puis utiliser sa fonction de rappel de réussite pour rediriger vers le script de téléchargement :

$.ajax({
    url: 'download.php',
    type: 'POST',
    success: function() {
        window.location = 'download.php';
    }
});
Copier après la connexion

Vous pouvez également simplement utiliser window.location pour accéder au script de téléchargement :

window.location = 'download.php';
Copier après la connexion

Bien que l'approche AJAX offre une certaine flexibilité, l'utilisation de window.location est généralement plus efficace et plus simple.

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