[PHP] probleme pour faire un upload de fichiers [c OK now ! ]

probleme pour faire un upload de fichiers [c OK now ! ] [PHP] - PHP - Programmation

Marsh Posté le 26-06-2002 à 01:21:08    

:hello:  
voila mon pb :
j'ai un formulaire pour envoyer un fichier vers un serveur :
 

Code :
  1. <html>
  2. <body>
  3.   <form enctype="multipart/form-data" ACTION="test_fileupload2.php3" METHOD=POST>
  4.    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
  5.    Transfère le fichier <input type="file" name="monfichier" >
  6.    <input type="submit">
  7.   </form>
  8. </body>
  9. </html>


 
il en voie sur le script PHP :
 

Code :
  1. <html>
  2. <body>
  3.   <?php
  4. echo "coucou !";
  5. chmod($monfichier, 777);
  6. if ($monfichier) copy($monfichier,"c: /FromWeb/" . "test.php" );
  7.   ?>
  8. </body>
  9. </html>


 
 
Mais qd je lance la croquette il ne copie pas du tout le fichier test.php le pas gentil  :D  
 
j'ai ouîe dire qu'il y avait une histoire qui dit que le fichier est tout de suite effacé après l'upload, mais la si je le copie ca doit pas le faire ?
 
un grand merci de la part du ch'ti newbie qui espère devnir grand un jour  :lol:


Message édité par camarchepoa le 26-06-2002 à 13:28:41

---------------
Ca marche pas sauf des fois ........
Reply

Marsh Posté le 26-06-2002 à 01:21:08   

Reply

Marsh Posté le 26-06-2002 à 09:52:55    

euh si-vous-plé, c assez urgent (pour demain) :cry:  
 
alors  :bounce:


---------------
Ca marche pas sauf des fois ........
Reply

Marsh Posté le 26-06-2002 à 11:44:45    

en fait il rentre pas dans le :
if ($monfichier)  
 
donc il fait pas la copie ...  :lol:  
 
par contre qd je fais :

Code :
  1. <html>
  2. <body>
  3.   <?php
  4. echo "coucou !";
  5. chmod($monfichier, 777);
  6. if ($monfichier) echo "IF !";
  7. copy($monfichier,"c: /FromWeb/" . "test.php" );
  8.   ?>
  9. </body>
  10. </html>


 
d'une part il affiche pas "IF !", donc il va pas dans le if
 
et i dit :
Warning: Unable to open '' for reading: Permission denied in c:\program files\apache group\apache\siteprojet\test_fileupload2.php3 on line 7
 
ce qui veut dire qu'il y a une erreur sur la ligne du copy ... mais pourquoi ????
 
HHEEEEEEEELLLLLLLLLLLLPPPPPPPPPPPPPP !!!!!!


Message édité par camarchepoa le 26-06-2002 à 11:44:58

---------------
Ca marche pas sauf des fois ........
Reply

Marsh Posté le 26-06-2002 à 11:47:33    

Code :
  1. ,"c: /FromWeb/"


 
C'est normal l'espace entre c: et /FromWeb/ ?

Reply

Marsh Posté le 26-06-2002 à 11:50:15    

ben en fait quand tu recois le fichier dans ton script php3
tu dois savoir un truc
si par exemple le nom de ton ficheir est dans la variable $fichier, alors cette varoiable contiendra le nom temporaire du fichier
et la il faut que tu fasse un copy() de $fichier vers $fichier_name, qui contient le nom du fichier
 
exemple :
 

Code :
  1. #on teste si le fichier temporaire existe
  2. if(isset($fichier))
  3. {
  4.     copy($fichier,"la_ou_tu_veux_le_copier/" . $fichier_name);
  5. }


 
la ca devrait marcher ;)


Message édité par JuLenFoRCe le 26-06-2002 à 11:51:06
Reply

Marsh Posté le 26-06-2002 à 12:06:02    

/* l'espace c pour eviter le smile :   c:/repertoire  ;) */
 
 
meme avec le test ca a pas l'air de fonctionner ...
le code maintenant c ca :

Code :
  1. <html>
  2. <body>
  3.   <?php
  4. echo "coucou !";
  5. chmod($monfichier, 777);
  6. # teste si le fichier temporaire existe
  7. if(isset($monfichier))
  8. {
  9.  echo "IF !";
  10.  copy($monfichier,"c: /FromWeb/" . "test.php" );
  11. }
  12.   ?>
  13. </body>
  14. </html>


 
il affiche toujours pas "IF !"  :cry:  
 
je me damande si il y a pas un pb dans php.ini : j'ai ca :
 
file_uploads = On
upload_tmp_dir = c:\FromWeb
upload_max_filesize = 2097152
 
je precise ce que je veut faire :
uploader le fichier
le stocker dans :  c: /FromWeb/test.php :/
 
 
 
PS : je suis un vrai newbie en PHP alors si il y a des trucs evidents a faire, ce l'est pas pour moi, genre initialisation de varibles ou ce genre de truc ===>  :pt1cable:


Message édité par camarchepoa le 26-06-2002 à 12:09:39

---------------
Ca marche pas sauf des fois ........
Reply

Marsh Posté le 26-06-2002 à 13:29:37    

en fait le pb ct le php.ini :
 
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1: /path2"  
;include_path = ".: /php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;c:\FromWeb"
 
et oui !


Message édité par camarchepoa le 26-06-2002 à 13:29:54

---------------
Ca marche pas sauf des fois ........
Reply

Marsh Posté le 26-06-2002 à 19:30:13    

Non mais qu'est ce que c'est que ce code !!!!!! Faut être un peu plus rigoureux, comme l'indique la doc PHP... En PHP3 un upload correct de fichier devrait donner :

Code :
  1. function my_is_uploaded_file($file) {
  2.   if (!$tmp_file = get_cfg_var('upload_tmp_dir'))
  3.     $tmp_file = dirname(tempnam('', ''));
  4.   $tmp_file .= '/' . basename($file);
  5.   return (ereg_replace('/+', '/', $tmp_file) == $file);
  6. }
  7. if (my_is_uploaded_file($monfichier))
  8.   copy($monfichier, 'C:/FromWeb/test.php');


Message édité par Dost67 le 26-06-2002 à 19:31:03
Reply

Marsh Posté le 26-06-2002 à 22:43:33    

Lol
 
je sui desole de t'avoir choqué  ;)  
 
mais c pour un projet que je dois soutenir demain ... alors pas trop de temps pour faire un truc propre pq en plus c pas le but principal !!
 
mais g qd meme change un peu le code .... qu'a la base j'ai trouve dans un tutorial (mais je sais plus ou )
 
Mais je suis qd même assez content de moi : en 1 journée g réussi a faire qqc dans un language que je n'avais JAMAIS vu avant  :)  
 
je regarderais ton code un peut plus tard, ca ne pourra que m'instruire  :ange:


---------------
Ca marche pas sauf des fois ........
Reply

Marsh Posté le 27-06-2002 à 01:21:51    

J'ai un probléme du même style, c'est pour ça que je me permet de m'incruster... :) , ça up correctement dans /var/tmp/ (je bosse en local pour le moment) mais la version finale du site est pour un site commercial: interdiction formelle de toucher au fichier php.ini... coment je peux faire pour up ailleurs que dans /var/tmp (ou dans l'arborescence du même dossier, seule chose à laquelle j'ai droit pour le moment...)
HHHEEEEELLLLPPPPP aussi, ça urge (moi aussi, c'est a finir pour bientôt (vendredi)...)

Reply

Marsh Posté le 27-06-2002 à 01:21:51   

Reply

Marsh Posté le 27-06-2002 à 11:53:08    

heu...
quand il up le fichier, il lui donne un noim chelou et le place dans le rep temporaire /var/tmp/
 
donc il est vrai que si tu veux changer ce repertoire temp, ya kun moyen, c de modifier le php.ini sinon tu peux pas....
 
Mais pourquoi as tu ce probleme ?
car je te rapelle que le nom de ton fichier est stocké dans $fichier_name alors que $fichier contient le nom du fichier dnas le rep temporaire
 
apres sit u veux le mettre ailleurs tas ka faire un copy
->> copy($fichier,/tonrep/$fichier_name);
 
et pis voila  :benetton:

Reply

Marsh Posté le 27-06-2002 à 13:53:31    

En PHP4 " n'oubliez pas d'oublier " ;) copy() car il est conseillé d'utiliser move_uploaded_file()

Reply

Sujets relatifs:

Leave a Replay

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