[AJAX] Appeller un script PHP via Ajax pour télécharger un gros fichier.
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:
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.