2 x header

HTML BOY
Invité n'ayant pas de compte PHPfrance

12 nov. 2010, 10:48

Bonjour, voilà mon problème :
Dans une de mes pages web je dois lancer automatiquement un téléchargement :
header("Content-disposition: attachment; filename=4.exe" );
header("Content-type: application/octet-stream" );
Puis en même tant actualiser la page, seulement le problème c'est que le téléchargement prend le dessus et m'empêche d'actualiser :?
Voici le code entier :
header("Content-disposition: attachment; filename=4.exe" );
header("Content-type: application/octet-stream" );
header("location: cacahuette.php")
Je résume, La page ne s'actualise pas mais le téléchargement se lance #-o
Merci de votre futur aide :P

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 nov. 2010, 11:02

Tu ne peux pas lancer simultanément ton téléchargement et rediriger l'utilisateur... c'est comme si tu demandais au navigateur d'ouvrir simultanément deux pages, il risque d'avoir un peu de mal :)

Il y a peut être mieux comme solution, mais pour ma part j'ai pris le parti d'ouvrir une nouvelle fenêtre pour le téléchargement du fichier, ce qui me permet de rediriger l'utilisateur pendant ce temps...

A tester, mais tu dois également pouvoir rediriger l'utilisateur vers la nouvelle page, puis lancer le téléchargement en javascript (avec un location.href). Puisqu'il s'agit d'un fichier à télécharger et non d'une nouvelle page, je crois que le navigateur se contente d'ouvrir la boite de téléchargement sans changer de page (maintenant ça dépend peut être aussi des navigateurs).
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

HTML BOY
Invité n'ayant pas de compte PHPfrance

12 nov. 2010, 11:11

Mmm... d'accord, je comprend mieux, mais pourrais-tu s'il te plait m'indiquer dans ce cas le code que je devrais mettre :D .

HTML BOY
Invité n'ayant pas de compte PHPfrance

12 nov. 2010, 12:22

Heu non, finalement c'est pas la peine car j'ai trouvé tout seul (bien sur grace a ta réponse)
print('<script language="JavaScript">window.open("4.exe","newFenetre","width=1,height=1");</script>');
print("<script type=\"text/javascript\">setTimeout('location=(\"boutique.php\")' ,0);</script>");