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 ?

Comment puis-je déclencher un téléchargement de fichier à l'aide d'AJAX et quelles sont les meilleures méthodes ?

Barbara Streisand
Libérer: 2024-12-06 02:04:10
original
537 Les gens l'ont consulté

How Can I Trigger a File Download Using AJAX, and What Are the Best Methods?

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();
Copier après la connexion

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");
?>
Copier après la connexion

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>
Copier après la connexion

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';
    }
});
Copier après la connexion

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!

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