Maison > développement back-end > tutoriel php > Pourquoi AJAX ne déclenche-t-il pas le téléchargement de fichiers et quelles sont les alternatives ?

Pourquoi AJAX ne déclenche-t-il pas le téléchargement de fichiers et quelles sont les alternatives ?

DDD
Libérer: 2024-12-23 17:15:15
original
595 Les gens l'ont consulté

Why Doesn't AJAX Trigger File Downloads, and What Are the Alternatives?

Téléchargement de fichiers via AJAX

Lorsque vous essayez de lancer une demande de téléchargement AJAX via un clic sur un bouton, vous pouvez rencontrer un problème où la solution que vous que nous employons actuellement semble inefficace.

Votre approche consiste à créer un objet XMLHttpRequest et à envoyer une requête GET à un script PHP (download.php) qui définit des en-têtes spécifiques et lit les données d'un fichier. Cependant, cette méthode ne déclenche pas l'invite de téléchargement attendue.

Solution

Le nœud du problème réside dans le fait qu'AJAX à lui seul ne peut pas lancer directement les téléchargements de fichiers. Pour y parvenir, vous pouvez utiliser l'une des deux méthodes suivantes :

Utilisation de window.location

Cette méthode est simple et ne nécessite pas de requête AJAX. Attribuez simplement l'URL de téléchargement à window.location.

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

Cela accédera au script de téléchargement et invitera l'utilisateur à télécharger le fichier sans modifier la page actuelle.

Utilisation l'attribut de téléchargement (HTML5)

Si la prise en charge du navigateur est un problème, envisagez d'utiliser l'attribut de téléchargement (pris en charge par Firefox et Chrome).

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

L'attribut de téléchargement invite l'utilisateur à télécharger le fichier sans quitter la page actuelle.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal