Forcer le téléchargement et fermer la fenêtre !!

cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 - 30 juin 2004 à 17:16
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 - 1 juil. 2004 à 10:50
Lussss !
Voici mon pb :

je force le téléchargement d'un fichier :
<?php

$file = "fichier.txt";

// téléchargement du fichier
header("Content-Type: application/force-download");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".$file);

readfile($file);

?>

mé par contre je voudré que la fenêter se ferme automatiquement après, ou se redirige vers une autre page .... pas moyen !
Si je mets du javascript, le script se retrouve dans le fichier téléchargé (normal).

Et si après le readfile($file);
je fé :
header("Location: index.html");

ca marche pas non plus !

Si qqun a une idée .... merci d'avance !!
a+++

6 réponses

cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
30 juin 2004 à 17:33
ton header("Location: index.html"); mets-le tout-en-haut avant tous les autres headers ;)

Houzéf@
0
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
30 juin 2004 à 17:37
Ca ne fonctionne pas, le fichier n'est pas téléchargé ;)
merci kan meme ;)
0
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
30 juin 2004 à 18:29
ah et si tu mets le header("Location...") juste avant le readfile() ?

Houzéf@
0
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
1 juil. 2004 à 00:14
Non... si tu veux que la fenetre se ferme, tu n'as qu'à l'ouvrir juste pour ca...
C'est à dire que tu ouvres la fenetre (en javascript) et la bah tu fais downloader ton fichier... Internet Explorer sait que c'est un fichier à downloader seulement donc il fermera la fenetre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
1 juil. 2004 à 10:29
lusss !

c justement ce ke je fait !
Cette page ne peux servir qu'au download, a cause des headers .....

fichier html qui ouvre la page PHP :
<html>
<script>
function sauvegarde()
{
win= window.open("./php/recupData.php4", "sauve" , "toolbar=no,scrollbars=no,resizable=no,menubar=no,location=no,status=no,directories=no,width=1,height=1");
//win.onLoad=win.close();
}
</script>

etc ....

Fichier PHP :

<?php
$file = "monFichier.txt";

// téléchargement du fichier
header("Content-Type: application/force-download");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".$file);
readfile($file);
?>

Je ne peux rien mettre avant les headers, ni après (ca se retrouve dans le fichier downloadé) !

merci quand meme ;)
0
cs_djagger Messages postés 536 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 29 janvier 2009 1
1 juil. 2004 à 10:50
Yeaaaahhh ! j'ai trouvé ! lol

finalement je passe par une page intermédiaire !

Fichier HTML principal
<html>
<script>
function sauvegarde()
{
win= window.open("./php/intermédiaire.html", "sauve" , "toolbar=no,scrollbars=no,resizable=no,menubar=no,location=no,status=no,directories=no,width=1,height=1");
//win.onLoad=win.close();
}
</script>

etc ....

Fichier intermédiaire
<html>
<script>
var win;
function debut()
{
win =window.open("./recupData.php4", "_blank" , "toolbar=no,scrollbars=no,resizable=no,menubar=no,location=no,status=no,directories=no,width=1,height=1");
win.moveTo(-100,-100);//pour qu'on ne voit pas la page blanche ....
}
function fin()
{
win.close();
}
</script>

Téléchargement du fichier !!!!

</html>

Le fichier PHP de download reste le meme

Voila !
0
Rejoignez-nous