2010-10-29 5 views
1

J'essaye de télécharger le dossier par l'intermédiaire de la demande d'ajax. J'ai le code ci-dessous dans mon fichier php pour téléchargerTéléchargement de fichier Php par requête ajax

$filedata="File data here" 
header("Content-type: application/octet-stream"); 
header("Content-Disposition:attachment; filename=report.txt"); 
header('Content-Transfer-Encoding: binary'); 
header("Pragma: public"); 
header("Expires: 0"); 
echo $filedata; 

Il me donner une réponse ajax mais ne fournit pas boîte de dialogue de téléchargement de fichier. Est-ce que n'importe quelle solution? Merci d'avance.

Répondre

1

Je pense que ajax bloque la requête.

Depuis son ajax qui lit à partir du serveur, il peut ne pas déclencher la boîte de dialogue d'enregistrement de fichier.

+0

oui. Il ne déclenche pas de dialogue de sauvegarde. Y a-t-il une autre solution pour afficher la boîte de dialogue de sauvegarde? – Rahul

+0

N'utilisez pas une requête AJAX. Faites simplement un document.location pointant directement sur l'url (pour les requêtes GET) ou créez un formulaire masqué et soumettez-le pour les requêtes POST. –

+1

Ou pour le téléchargement d'un fichier, il suffit d'ajouter un lien. Si le navigateur obtient un contenu.Attachement, il ne changera pas la page en général, mais seulement télécharger le fichier et l'enregistrer, en restant sur la page en cours. ET si vous voulez être certain, ajoutez target = "_ BLANK" au tag a et il sera téléchargé dans une nouvelle fenêtre du navigateur. –