Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1696 connectés 

  FORUM HardWare.fr
  Programmation

  [ PHP ] fOrcer le téléchargement d'un fichier .txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ PHP ] fOrcer le téléchargement d'un fichier .txt

n°178701
ludo2604
kitsch' me if u can
Posté le 19-07-2002 à 12:07:13  profilanswer
 

salut,  
on va dire que j'ai un fichier .txt stocké sur le serveur.
 je voudrai que lorsque je click sur le lien pointant sur ce .txt qu'il se télécharge ( que l'invit de download apparaisse) au lieu qu'il s'ouvre dans l' explorer.
 
 
Avez vous une solut ?
 
Merci d'avance  :hello:


---------------
Make Portraits, Not War!  
mood
Publicité
Posté le 19-07-2002 à 12:07:13  profilanswer
 

n°178729
Mara's dad
Yes I can !
Posté le 19-07-2002 à 12:59:55  profilanswer
 

Lien du genre :
<a href="get.php?fic=toto.txt">Télécharger</a>
 
et get.php :
<?php
header( "Content-type: application/txt" );
$len = filesize( $_GET["fic"] );
header( "Content-Length: $len" );
header( "Content-Disposition: attachment; filename=" . $_GET["fic"] );
readfile($_GET["fic"]);
?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°178733
Mara's dad
Yes I can !
Posté le 19-07-2002 à 13:04:50  profilanswer
 

Fait gaffe quand même !
 
Ne recopie pas bêtement ce code !
 
Vérifie le nom du fichier que tu va envoyer !
 
Il ne faut pas laisser passer les trucs du genre :
 
http://www.tonsite.com/get.php?fic=connect.php
 
Avec connect.php qui contient par exemple un mot de passe de connexion à un base...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°178741
ludo2604
kitsch' me if u can
Posté le 19-07-2002 à 13:14:04  profilanswer
 

oky merci en fait je viens de trouver le tuto ici:
 
http://www.phpindex.com/trucsetast [...] lement=146
 
ça ressemble à ce que tu m'as dis en effet.
 
Bon, voila comment j'ai fais:
 
ma page ou il ya  lien (et ou le .txt ce crée):
 

Code :
  1. $filename = "$nom - $titre.txt";
  2. $dir = "scriptsphp3/lyrics/$filename";
  3. echo "<a href=\"scriptsphp3/lyrics/download.php?dir=$dir&filename=$filename\">télécharger</a>";
  4. if($fp = fopen($dir,"w" )){
  5. fwrite($fp,$parole);
  6. fclose($fp);
  7. }


 
ma page download:
 

Code :
  1. <?php
  2. header("Content-type: application/force-download" );
  3. header("Content-Disposition: attachment; filename=$filename" );
  4. readfile("$dir" );
  5. ?>


 
bon, le .txt se crée bien et tout mais à l'interieur, au lieu d'avoir les paroles comme prévu et bien j'ai ce message d'erreur:
 
<br />
<b>Warning</b>:  readfile("scriptsphp3/lyrics/Metallica - Nothing else matters.txt" ) - No such file or directory in <b>e:\sites internet\ludo project\scriptsphp3\lyrics\download.php</b> on line <b>4</b><br />
 
 
ça veut dire quoi exactement ??
 
Merci d'avance  :hello:  


---------------
Make Portraits, Not War!  
n°178752
Mara's dad
Yes I can !
Posté le 19-07-2002 à 13:25:25  profilanswer
 

Ton script download.php il est dans :
e:\sites internet\ludo project\scriptsphp3\lyrics\download.php
 
Donc si tu lui donne un nom de fichier comme çà :
 
scriptsphp3/lyrics/Metallica - Nothing else matters.txt
 
Il le cherche en relatif, donc il cherche :  
 
e:\sites internet\ludo project\scriptsphp3\lyrics\scriptsphp3/lyrics/Metallica - Nothing else matters.txt
 
 
Donc, soit tu met un chemein absolu, soit tu fait gaffe dans tes chemins relatifs !
 
Ok ?
 
Et je répète mon avertissement !
 
Dans download.php, ne fait pas de readfile sans vérifier que le fichier demandé est bien autorisé (par toi) au téléchargement.
 
Le plus simple, c'est de n'autoriser que les fichiers .txt, dans un répertoire spécial pour çà !
Si tu code en dur le répertoire dans download.php (pourquoi pas!) fait gaffe au petit malin qui demande un fichier du genre ../../../../mon_cv.txt !
 
IL FAUT ETRE PARANO QUAND ON FAIT DU PHP !
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°178775
ludo2604
kitsch' me if u can
Posté le 19-07-2002 à 13:48:07  profilanswer
 

bah voui mais j'ai betement suivi le tuto moi, et ils disent :
 
$dir= "chemin complet vers le fichier/".$filname;
 
c'est donc ce que j'ai fais.
et puis je suis un peu debutant en php, dsl je n'ai pas tout compri à ce que tu as dis.
 
BOn, deja j'ai fais un rep "temp" pour stocker les .txt temporaires ( oui temporaire car je compte effacer le .txt directement apres ;))
 
Ensuite, il faut regler les chemins c'est ça ? mais lequel ?


Message édité par ludo2604 le 19-07-2002 à 13:48:57

---------------
Make Portraits, Not War!  
n°178800
ludo2604
kitsch' me if u can
Posté le 19-07-2002 à 14:11:12  profilanswer
 

ah ok en fait j'ai mis ça :
 
$dir = "E:\Sites internet\Ludo project\scriptsphp3/lyrics/temp/$filename";
 
au lieu de :
 
$dir = "scriptsphp3/lyrics/$filename";  
 
et ça a l'air de marcher...
 
Mais comment je ferrai sur le serveur FRee ?????
 
edit: arf non ça ne marche que sur mon PC :/


Message édité par ludo2604 le 19-07-2002 à 14:41:26

---------------
Make Portraits, Not War!  

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [ PHP ] fOrcer le téléchargement d'un fichier .txt

 

Sujets relatifs
[PHP] Include et Dreamweaver 2[PHP] Installation sur IIS 5.0
[PHP] Besoin d'un Gros coup de main pour finir mon sitePortée d'une variable PHP
HELP !!! exécution d'un fichier batch sur 1 serveur distant[PHP] resultats d'un select -> au secours!! [Newbie inside]
[PHP] Comment faire des Annonces ?[php][mail] attachement de fichier pb quand c superieur a 10 ko
[PHP] Creer des repertoires[PHP] Obtenir le code source...
Plus de sujets relatifs à : [ PHP ] fOrcer le téléchargement d'un fichier .txt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR