[résolu] Créé un fichier sur le hdd

Créé un fichier sur le hdd [résolu] - PHP - Programmation

Marsh Posté le 19-05-2004 à 09:26:44    

Voila c est vraiment tout con mais j ai besoin de créé un fichier sur le hdd de l utilisateur (pour faire une exportation de clients) pour ca j avais fait:
$file = fopen("c:/export_clients.csv", "w" )
mais il me dit toujours "failed to open stream: No such file or directory in /home/....."
J ai déja essaye avec de truc genre file://c:/... mais ca ne marche pas non plus...  
Comme dois je m y prendre???
 
D'avance merci
Ben


Message édité par the big ben le 19-05-2004 à 11:09:46
Reply

Marsh Posté le 19-05-2004 à 09:26:44   

Reply

Marsh Posté le 19-05-2004 à 09:29:54    

genre le PHP ça serait côté serveur ....

Reply

Marsh Posté le 19-05-2004 à 09:31:18    

bon oki alors si je le crée sur mon serveur comment puis je faire pour le downloader "automatiquement" apres?

Reply

Marsh Posté le 19-05-2004 à 09:37:30    

tu peux utiliser la fonction readfile() pour retourner la fichier vers le client.
mais tu peux éviter de créer un fichier en renvoyant directement le contenu du csv vers le client en spécifiant avec la fonction header() le type de fichier que tu renvoies.


Message édité par dropsy le 19-05-2004 à 09:38:08
Reply

Marsh Posté le 19-05-2004 à 10:08:47    

Pourrais tu m aider un peu plus sur la facon de procéder? Voici ce que j avais pour l instant:

Code :
  1. <?php
  2. $fileName = "export/export_clients.csv";
  3.   //ouverture
  4.   if($file = fopen("$fileName", "w" )) {
  5.    require ("Connexion.php" ); //Fichier de connexion
  6.    require ("Var.php" ); //Les parametres
  7.    require ("ExecRequete.php" ); //Fichier d'execution de requete
  8.    $connexion = Connexion(NOM, PASSE, BASE, SERVEUR);
  9.    $requeteClient = "SELECT * FROM clients";
  10.    $clients = ExecRequete ($requeteClient, $connexion);
  11.  
  12.    fwrite ($file, "IdClient; Nom; Prenom; Rue; Num; Ville; CP; Pays; Email; Tel; GSM; Commentaires; Offre; Reduction; ip\n" );
  13.    while($cli = LigneSuivante($clients)) {
  14.     fwrite($file, "$cli->IdClient; " );
  15.     fwrite($file, "$cli->Nom; " );
  16.     fwrite($file, "$cli->Prenom; " );
  17.     fwrite($file, "$cli->Rue; " );
  18.     fwrite($file, "$cli->Num; " );
  19.     fwrite($file, "$cli->Ville; " );
  20.     fwrite($file, "$cli->CP; " );
  21.     fwrite($file, "$cli->Pays; " );
  22.     fwrite($file, "$cli->Email; " );
  23.     fwrite($file, "$cli->Tel; " );
  24.     fwrite($file, "$cli->GSM; " );
  25.     fwrite($file, "$cli->Commentaires; " );
  26.     fwrite($file, "$cli->Offre; " );
  27.     fwrite($file, "$cli->Reduction; " );
  28.     fwrite($file, "$cli->ip\n" );
  29.    }
  30.    //fermeture
  31.    fclose($file);
  32.   header("Content-type: application/octet-stream" );
  33.   header("Content-Length: ".filesize($fileName ));
  34.   header("Content-Disposition: attachment; filename=".$file);
  35.   readfile($fileName );
  36.    echo "Exportation des clients terminée!";
  37.   } else {
  38.    echo "Erreur lors de l'exportation";
  39.   }
  40. ?>


 
Mais déja si je met mes header a cet endroit il me fait:  
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/Galerie/Connexion.php:27) in /home/public_html/Galerie/export.php on line 39


Message édité par the big ben le 19-05-2004 à 10:09:25
Reply

Marsh Posté le 19-05-2004 à 10:25:55    

cf doc sur le header(), tu ne peux pas utiliser header après avoir commencé à envoyer du contenu vers le client (en l'occurrence, là, c'est à la ligne 27 de connexion.php que tu retournes du contenu vers le client) [:proy]

Reply

Marsh Posté le 19-05-2004 à 11:09:08    

ok j ai trouver la solution... Si jamais qq est interessé voir ici: http://www.destrucsaweb.com/ressou [...] oto_45.php
 
Merci beaucoup en tt cas!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed