Problème de force download : où le mettre?

cs_Kaory Messages postés 4 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 21 août 2006 - 18 août 2006 à 09:35
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 22 août 2006 à 09:35
Bonjour à tous !

Voila j'ai un petit souci avec des liens que je veux rendre téléchargeable, j'ai un peu chercher et j'ai trouvé qu'en mettant un header() on pouvait rendre le fichier téléchargeable.
Mon problème est que je ne sais pas ou mettre ce header :
   header("Content-disposition: attachment; filename=$tot"); 
   header("Content-Type: application/force-download");
En fait j'ai une boucle qui parcourt un dossier où sont stockés des .doc, des .dot ou des .xls et qui crée des liens vers les fichiers trouvés et c'est ces fichiers que je voudrai rendre téléchargeable.
En fait il le sont déjà en fesant clic-droit : "Enregistrer la cible sous..." mais pas quand je clique-gauche dessus .
Ca vient peut etre du fait que j'utilise IE6 mais je suis obligé (je suis en stage et la boite n'utilise que ie6).

voila mon code :

<?php
$rep = "c:\\mon_dossier";
   if ($dir = opendir ($rep))
   {
      while ($file = readdir($dir))
      {
         // chemin complet vers le fichier pour creer un lien
         $tot =$rep."[file://%22.$file/ \".$file]; 
         if($file != '' && $file != '..' && $file != '.' && is_dir($tot)!=TRUE)
         {  
            // j'enleve l'extension pour l'affichage du nom du fichier
            $nom_file = substr($file,0,-4);
            // c'est le fichier pointé par ce lien que je veux 
            // rendre téléchargeable mais où mettre les 2 header() ???
            echo "<li>".$nom_file."</li>"; 
         }
      }
   }
   closedir ($dir);
}
?>

Voila j'espere que quelqu'un pourra/voudra m'aider parce que la je vois plus.
Merci

5 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
18 août 2006 à 10:05
Salut!
Moi j'ai ça:
$file = basename( $path );
       
    header("Content-disposition: attachment; filename=$file");
    header('Content-Type: application/force-download');
    header("Content-Transfer-Encoding: application/octet-stream\n");
    header('Content-Length: ' . filesize($path) );
    header('Pragma: no-cache');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0, public');
    header('Expires: 0');
    readfile( $path );

Ou $path est le chemin complet ( dossier + nom du fichier )

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_Kaory Messages postés 4 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 21 août 2006
18 août 2006 à 13:58
Re bonjour !

Merci de ta réponse mais ce n'est pas cela que je demande les 2 header() que j'ai mis permet a eux seul de télécharger le fichier. Le problème est que je ne sais pas ou les placer dans mon code pour que les fichiers contenu dans le dossier soient téléchargeables.
Quoi que j'essaye c'est toujours la page php qui est proposé au téléchargement lorsque le l'on clique sur le lien pour acceder à la page.
J'ai essayer avec ton code mais ça me fait la même chose

A+
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
21 août 2006 à 10:09
Salut!
Ce code ouvre la boîte de téléchargement du fichier... Ce n'est pas ca que tu veux?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_Kaory Messages postés 4 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 21 août 2006
21 août 2006 à 11:35
Bonjour

Bon j'ai pas du etre assez claire dans mon premier post. Le code pour ouvrir la boite de dialogue et tout je l'ai, sauf que je sais pas ou le mettre pour rendre les liens créés par ma boucle téléchargeable.
N'importe quoi que j'essaye c'est toujours ma page .php qui est proposé au téléchargement...

Ce que je voudrais si quelqu'un peut m'aider c'est savoir ou je doit mettre ce bout de code : 
      header("Content-disposition: attachment; filename=$tot"); 
   header("Content-Type: application/force-download");
pour que lorsqu'on  clique sur les liens de mes .doc la boite de dialogue s'ouvre.

Voila

A+
0

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

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
22 août 2006 à 09:35
Salut!
Ce que je ferais:
A l'endroit où tu met ton www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Rejoignez-nous