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

  FORUM HardWare.fr
  Programmation
  PHP

  Créer un nouveau fichier à partir d'un fichier uploadé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Créer un nouveau fichier à partir d'un fichier uploadé

n°1110180
Kiosquec
Posté le 06-06-2005 à 19:14:16  profilanswer
 

Quand le serveur que j'utilise le veut bien, je sais uploader un fichier texte sur mon serveur.
(Easyphp sous Windows XP, c'est OK. PHP sous Linux, je ne dois pas avoir les bons droits, mon upload est refusé).
Supposons ce détail résolu pour Linux...
 
Une fois mon fichier texte déposé dans un répertoire nommé "entree", je veux l'ouvrir en lecture, et interpréter ligne par ligne son contenu pour écrire un autre fichier, à déposer dans un répertoire nommé "sortie".
J'ai une idée assez précise des traitements à effectuer pour fabriquer le nouveau contenu.
 
Le problème, c'est cette série de messages d'erreur :
 
Warning: fopen(entree/test1.txt): failed to open stream: No error in c:\program files\easyphp1-7\www\creation_sortie.php on line 21
 
Warning: fopen(sortie/test2.txt): failed to open stream: No error in c:\program files\easyphp1-7\www\creation_sortie.php on line 22
 
Warning: fwrite(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\creation_sortie.php on line 24
 
Warning: fwrite(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\creation_sortie.php on line 25
 
Warning: feof(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\creation_sortie.php on line 27
 
Fatal error: Call to undefined function: fget() in c:\program files\easyphp1-7\www\creation_sortie.php on line 29
 
1 - Le programme ne sait pas trouver mon fichier existant test1.txt
2 - Il est embêté par test2.txt qui n'existe pas encore (mais je pense que la raison est la même en fait).
3 - Il fait référence à un chemin c:\program files\easyphp1-7\www\creation_sortie.php alors que j'aurais plutôt attendu un chemin par rapport à la racine du site web. Je suis supposé être sur un serveur web, non ?
4 - Evidemment, entree\test1.txt ne marche, le chemin complet non plus, et test1.txt dans le même répertoire que creation_sortie.php pas davantage.
(5 - Euh !... Stream resource, quelqu'un peut me rappeler qu'est-ce que ce que ça que c'est ?)
 
Je simplifie le code :
----------------------
 
$fichier_txt  = "test1.txt";  // Et en cas de sous-répertoire ???
$fichier_ini  = "test2.txt";
 
$fichier_entree  = fopen($fichier_txt, "R" );
$fichier_sortie  = fopen($fichier_ini, "W" );
 
$ligne_numero = 0;
 
while (!feof($fichier_entree)) {
  $ligne_numero++;
  $entree = fget($fichier_entree,1000);
  $sortie = $entree." = ".$ligne_numero;
  fwrite($fichier_sortie, $sortie);
}
   
fclose($fichier_entree);
fclose($fichier_sortie);
 
Il peut manquer une instruction pour séparer les lignes dans le fichier de sortie, peut-être ? C'est un détail.
Le problème c'est que test1.txt n'est pas trouvé, alors que le programme d'upload l'a déposé sur le serveur.

mood
Publicité
Posté le 06-06-2005 à 19:14:16  profilanswer
 

n°1110190
ritzle
Posté le 06-06-2005 à 19:25:15  profilanswer
 

"fget" c'est une erreur de recopiage ?
parce que ca doit etre "fgets"
 

Citation :

// Et en cas de sous-répertoire ???


$fichier_txt  = "entree\\test1.txt";  
$fichier_ini  = "sortie\\test2.txt";


Message édité par ritzle le 06-06-2005 à 19:26:26
n°1110525
Kiosquec
Posté le 07-06-2005 à 08:05:49  profilanswer
 

En effet, j'ai comme un douste là, si !...
Je vérifie dès que j'ai mis les pieds au bureau si je l'ai mis ou pas ce "s".
 
Pour les droits sous Linux, je mets 777 ou je peux faire moins brutal ? Ou bien le problème vient-il d'ailleurs ?
 
Je mettrai la solution complète quand tout marchera.

n°1110821
Kiosquec
Posté le 07-06-2005 à 12:01:11  profilanswer
 

Il manquait bien un s à fgets.
Problème pas résolu pour autant.
 
D'abord, pourquoi "txt\\test1.txt" et pas "txt/test1.txt" ?
Le fichier est-il vu comme appartenant à une arborescence Windows et non comme un fichier sur un serveur Web ?
Cela signifie-t-il qu'il faudra écrire "txt/test1" quand le programme sera déployé sur Linux ?
 
Mes commandes
$fichier_entree  = fopen($fichier_txt, "R" );  
$fichier_sortie  = fopen($fichier_ini, "W" );  
ne sont pas digérées.
 
$fichier_entree  = fopen($fichier_txt, "r" );  
$fichier_sortie  = fopen($fichier_ini, "w" );  
donnent un résultat, mais farci de Warnings.
 
En outre, je pensais que
$ligne = fgets($fichier_entree,1000);
allait gentiment lire la première ligne, en s'arrêtant avant 1000 au besoin
et que le while bouclerait jusqu'à la fin du fichier (3 lignes pour l'instant).
(Comment faire lire une ligne de fichier texte de type DOS ou Windows ? Et pour une ligne de fichier texte Linux, c'est pareil ou pas ?)
 
Au lieu de cela, le programme boucle sans fin, et me renvoie des pelletées de warnings du genre "failed to open stream".
Et mon fichier de sortie est bien créé cependant !!!!
 
Pour simplifier, j'ai juste demandé un
readfile($fichier_entree);
 
Et j'ai encore une injure en réponse :
Warning: readfile(Resource id #2): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\mon_site\test_fichier.php on line 27
 
 
 
 
 

n°1111186
ritzle
Posté le 07-06-2005 à 15:00:11  profilanswer
 

En effet, j'ai du mélanger les slash et anti-slash.
Si tu essaye avec un fichier que tu as toi-meme mis (pas d'upload), ca marche pour l'ouverture ?


Message édité par ritzle le 07-06-2005 à 15:01:00

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

  Créer un nouveau fichier à partir d'un fichier uploadé

 

Sujets relatifs
[VBA] Créer un raccourci vers une macrosuppression d'une ligne d'un fichier en vba
Generer un .lib a partir d'un .dllPasser un tableau a un autre fichier
lecture d'un fichier par block de caracteres[DTD] Peut on utiliser deux dtds pour un seul fichier ?
Creer une interface pour une base de données sous access [VBS] Supprimer ligne dans fichier
lire et extraire donnée d'un fichier sylkProblème de lecture de fichier
Plus de sujets relatifs à : Créer un nouveau fichier à partir d'un fichier uploadé


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