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:
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';
pour la fonction ajax j'utilise celle du tutorial avec la méthode POST (voir liste liée)

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.