Bonsoir,
J'ai un script PHP qui permet de télécharger des fichiers à distance.
En l'appellant directement le navigateur arrive à télécharger.
Ce script php je l'appelle via Ajax ce qui me permet d'injecter les éventuels erreur dans un div. Malheureusement le navigateur ne telecharge pas le fichier s'il n'y a aucune erreur.
voici le code simplifié:
PHP:
pour la fonction ajax j'utilise celle du tutorial avec la méthode POST (voir liste liée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $pdf_file ="http://hebergeurdegrosfichier.com/monfichierdistant.pdf"; ini_set('allow_url_fopen', '1'); // on renome le fichier. $user_pdf_file = "pourToiInternaute.pdf"; if(@fopen($pdf_file, "r")) { header("Content-Type: application/force-download\n"); header("Content-Disposition: attachment; filename=$user_pdf_file"); readfile($pdf_file); exit; } else echo 'Erreur';
S'il y a une erreur, il arrive bien à afficher les erreurs mais dans la fonction go(), comment Ajax gère t-il la réponse (Cf: xhr.responseText) dans le cas d'un télechargement d'un fichier?
essaye t-il de me mettre le pdf à télécharger dans le div?
Comment faire pour que les headers php fonctionne via ajax?
Merci.
Partager