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

  FORUM HardWare.fr
  Programmation
  PHP

  Télécharger des données à la volée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Télécharger des données à la volée

n°1222297
coolben
http://www.starbusiness.fr
Posté le 13-10-2005 à 16:27:12  profilanswer
 

Bonjour
 
J'aimerai réaliser une interface permettant d'envoyer des données dans un fichier a un utilisateur.
Une solution serait que l'interface crée un fichier sur le serveur et ensuite porpose à un l'internaute de le telecharcher.
 
J'aimerai éviter d'avoir à créer ce fichier sur le serveur. Peut on directement proposer a l'internaute de telecharger le fichier sans le créer avant sur le serveur. En quelques que sorte envoyer un flux de données que le client récuppere comme fichier téléchargé.
 
merci

mood
Publicité
Posté le 13-10-2005 à 16:27:12  profilanswer
 

n°1222306
masklinn
í dag viðrar vel til loftárása
Posté le 13-10-2005 à 16:35:02  profilanswer
 

coolben a écrit :

Bonjour
 
J'aimerai réaliser une interface permettant d'envoyer des données dans un fichier a un utilisateur.
Une solution serait que l'interface crée un fichier sur le serveur et ensuite porpose à un l'internaute de le telecharcher.
 
J'aimerai éviter d'avoir à créer ce fichier sur le serveur. Peut on directement proposer a l'internaute de telecharger le fichier sans le créer avant sur le serveur. En quelques que sorte envoyer un flux de données que le client récuppere comme fichier téléchargé.
 
merci


Il suffit de générer les données directement dans ton script PHP et d'indiquer au serveur d'envoyer le tout avec le type MIME "application/octet-stream" ou "application/force-download", et en bonus tu peux utiliser le header Content-disposition pour indiquer le nom du fichier (celui qui va apparaître dans la boite d'enregistrement du client) avec une structure du type < Content-disposition: attachment; filename="nom_du_fichier" >
 
Accessoirement, ne pas oublier d'envoyer également la longueur des données au client (header Content-length) sinon c'est extrèmement chiant :o


Message édité par masklinn le 13-10-2005 à 16:35:59

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1222389
coolben
http://www.starbusiness.fr
Posté le 13-10-2005 à 18:02:28  profilanswer
 

merci ca marche nickel  
 
voici mon script si quelqu'un a besoin :
 

Citation :

<?  
if($_GET["dwn"]) {
   
   ob_clean(); // Vide le buffer (v >= 4.2)
 
   // Dialogue de téléchargement
   header("content-type: application/octet-stream" );
   // seulement pour application/octet-stream !
   header("Content-Disposition: attachment; filename=stat.txt" );
 
   // Ouvrir avec MSWord
   // header("content-type: application/msword" );
   // Ouvrir avec MSExcel
   // header("content-type: application/vnd.ms-excel" );
   // Ouvrir en Text
   // header("content-type: text/plain" );
 
   // voir aussi http://dev.nexen.net/scripts/details.php?scripts=354    
 
// ------------------------------------------------------------------    
// données à intégrer dans le fichier à envoyer    
include("../constante.php" );
include("../script.php" );    
$conn=conn();
$res=mysql_query('SELECT * FROM log ORDER BY h DESC',$conn);
echo mysql_error($conn);
if (mysql_num_rows($res)>0)
 {
 echo 'ip;date;page'.chr(13).chr(10);
 while ($objet=mysql_fetch_object($res))
  {
  echo $objet->ip.';'.$objet->h.';'.$objet->page.chr(13).chr(10);
  }
 }
// ---------------------------------------------------------------------
// fin des données
 
   flush(); // Envoie le buffer
} else { ?>
 
   <A href="download.php?dwn=download.php">Test</A>
   
<?  
}  
?>


 
 

n°1222782
sky_strike​r
Posté le 14-10-2005 à 10:19:06  profilanswer
 

coolben a écrit :

merci ca marche nickel  
 
voici mon script si quelqu'un a besoin :
 

Citation :

<?  
if($_GET["dwn"]) {
   
   ob_clean(); // Vide le buffer (v >= 4.2)
 
   // Dialogue de téléchargement
   header("content-type: application/octet-stream" );
   // seulement pour application/octet-stream !
   header("Content-Disposition: attachment; filename=stat.txt" );
 
   // Ouvrir avec MSWord
   // header("content-type: application/msword" );
   // Ouvrir avec MSExcel
   // header("content-type: application/vnd.ms-excel" );
   // Ouvrir en Text
   // header("content-type: text/plain" );
 
   // voir aussi http://dev.nexen.net/scripts/details.php?scripts=354    
 
// ------------------------------------------------------------------    
// données à intégrer dans le fichier à envoyer    
include("../constante.php" );
include("../script.php" );    
$conn=conn();
$res=mysql_query('SELECT * FROM log ORDER BY h DESC',$conn);
echo mysql_error($conn);
if (mysql_num_rows($res)>0)
 {
 echo 'ip;date;page'.chr(13).chr(10);
 while ($objet=mysql_fetch_object($res))
  {
  echo $objet->ip.';'.$objet->h.';'.$objet->page.chr(13).chr(10);
  }
 }
// ---------------------------------------------------------------------
// fin des données
 
   flush(); // Envoie le buffer
} else { ?>
 
   <A href="download.php?dwn=download.php">Test</A>
   
<?  
}  
?>



 
Salut,
 
Attention qd même aux aspect de sécurité car un pirate pourrait utilisre ton script pour tlécharger tes fichiers PHP et donc avoir accés au source. Je n'ai pas lu ton source plus que ça mais tu devrait faire un test sur l'extension ou mieux sur le type mime pour t'assurer que ce qu'il télécharge est bien ce que tu as prévu. Sinon ça risque de chauffer ... :jap:  


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

  Télécharger des données à la volée

 

Sujets relatifs
Problème LWP : impossible de télécharger la pageexécuter un script de migration de données entre bases SQL
importer données d'une base MySQL dans une autre..HelpProblème de connexion à ma base de données
Base de données des viles et des départementsRelier base de données Access et MySQL
récupérer les données dans la liste d'un filtre automatique[Excel] Conditionner une source de données dans un graphique
update de données sur plusieurs lignesBasculer avec un script des données d'1 BDD1 vers 1 BDD 2 et cela auto
Plus de sujets relatifs à : Télécharger des données à la volée


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