[PHP] Lire un fichier chez le client?

Lire un fichier chez le client? [PHP] - Programmation

Marsh Posté le 21-08-2002 à 09:31:01    

J'ai un formulaire qui demande au client de sélectionner un fichier texte avec un bouton parcourir.
Je vourdais que lorqu'il valide le forulaire, je récupère simplement le contenu de ce fichier (texte) pour le mettre dans une base de données.
Je ne vois pas bien comment faire. :hello:  

Reply

Marsh Posté le 21-08-2002 à 09:31:01   

Reply

Marsh Posté le 21-08-2002 à 11:01:35    

:pt1cable:

Reply

Marsh Posté le 21-08-2002 à 11:57:11    

Tu ne peux pas lire un fichier sur le client sans le transférer sur le serveur (PHP fait tout ses traitements sur le serveur).
 
On ne le répètera jamais assez : http://dev.nexen.net
 
cf fonction copy() + recherche "upload"

Reply

Marsh Posté le 21-08-2002 à 14:46:00    

black_lord a écrit a écrit :

Tu ne peux pas lire un fichier sur le client sans le transférer sur le serveur




 
si on peut, mais on appelle ça un cookie  :D


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 21-08-2002 à 19:45:25    

ok merci je vé regarder du coté de copy()

Reply

Marsh Posté le 21-08-2002 à 22:43:38    

Sh@rdar a écrit a écrit :

 
 
si on peut, mais on appelle ça un cookie  :D  




 
 :jap:  ;)

Reply

Marsh Posté le 23-08-2002 à 09:08:29    

je suis allé sur nexen.net voilà ce que j'ai essayé :

Code :
  1. <form action="index.php" method="post" enctype="multipart/form-data" name="form1">
  2.   <input name="userfile" type="file" id="userfile">
  3.   <input name="action" type="hidden" id="action" value="up">
  4.   <input type="submit" name="Submit" value="Envoyer">
  5. </form>
  6. <?
  7. if(@$_POST['action'] == "up" )
  8. {
  9. $destination = "temp/";
  10. $userfile = $_POST['userfile'];
  11. upload($destination , $userfile , $userfile_name , $userfile_size);
  12. }
  13. function upload($destination , $userfile , $userfile_name , $userfile_size){
  14. $Resultat='';
  15. // Taille maximale de l'upload  
  16.   $size=102400;
  17.   if ($userfile_size>$size)
  18.   {
  19.   $size_max_ko=$size/1024;
  20.   $Resultat="Votre fichier est trop gros ($size_max_ko ko max).";
  21.   }
  22.   if ($userfile!="none" && $userfile_size<$size && $userfile_size!=0)
  23.   {
  24.   If(!file_exists("$destination/$userfile_name" ))
  25.   {
  26.   // si le répertoire n'existe pas  
  27.   if(!file_exists("$destination" ))
  28.   {
  29.   mkdir("$destination", 0775);
  30.   }
  31.   if (!copy($userfile, "$destination/$userfile_name" ))
  32.   {
  33.   $Resultat="Problème de transfert pour le fichier;";
  34.   }
  35.   else
  36.   {
  37.   $Resultat="Fichier enregistré";
  38.   }
  39.   }
  40.   else
  41.   {
  42.   $Resultat="Le fichier ".$userfile_name." que vous voulez transférer
  43. existe dèjà dans votre répertoire.";
  44.   }
  45.   }
  46.   // Resultat  
  47. return $Resultat;
  48.  
  49. }
  50. ?>


Et cela ne marche pas...Le fichier ne semble pas se transférer et j'ai l'erreur suivante :

Code :
  1. Notice: Undefined index: userfile in d:\upload2\index.php on line 10
  2. Notice: Undefined variable: userfile_name in d:\upload2\index.php on line 11
  3. Notice: Undefined variable: userfile_size in d:\upload2\index.php on line 11


 :??:

Reply

Marsh Posté le 23-08-2002 à 09:21:03    

avec un active X ou un applet Java tu peux parcourir les repertoires des clients (à conditions qu'il accpete l'installation de l'active X ou d el'applet)

Reply

Marsh Posté le 23-08-2002 à 20:13:15    

et c'est dur à faire tout ça???
Parce que je ne connais pas du tout!
Mais quand même! La fonction copppy devaris passer non?!  :??:

Reply

Marsh Posté le 23-08-2002 à 20:45:31    

Si j'ai bien tous compris, ya plus simple qu'un activX ou autre :

Code :
  1. <form name="form1" enctype="multipart/form-data" method="post" action="">
  2. <input type="file" name="file">
  3. </form>


Le seul prob, c'est de bien def le enctype en fct de ce que le client envoie au serveur. De plus vu la taille variable du fichier tu es oblugé d'utilisé la methode post. Donc si tu veux faire du ctrl coté client avant l'envoi faut bidouiller.

Reply

Marsh Posté le 23-08-2002 à 20:45:31   

Reply

Marsh Posté le 23-08-2002 à 21:48:09    

oui ça j'ai compris mais ça ne marche pas!
le fichier n'a pas l'air d'être transféré.
Ce que je cherche à transférer sont des fichiers très petits, pas plus de 50ko. Ce serait des fichier HTML,TXT,PHP ect...

Reply

Marsh Posté le 24-08-2002 à 01:39:59    

le chemin de ton fichier lorsqu'il a été uploadé est $HTTP_POST_FILES['userfile']['tmp_name']

Reply

Marsh Posté le 24-08-2002 à 01:46:29    

Et la bidouille que (tout le monde aussi ? :D) j'ai essayé qui consiterait à initialiser le champs file avec un nom de fichier, puis soumettre automatiquement le form ne marche évidement pas (heureusement d'ailleurs...) ;)

Reply

Sujets relatifs:

Leave a Replay

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