[PHP] Récupérer le nom d un fichier à uploader...

Récupérer le nom d un fichier à uploader... [PHP] - PHP - Programmation

Marsh Posté le 03-06-2003 à 16:11:53    

sur un bête formulaire avec un champ de type 'file', kan je valide, je reçois le fichier amis avec le nom barbare du fichier temporaire...
comment je pourrais faire pour récupérer le VRAI nom du fichier :??:


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le 03-06-2003 à 16:11:53   

Reply

Marsh Posté le 03-06-2003 à 18:16:59    

[:fred997]


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le 03-06-2003 à 19:42:01    

nom temporaire  :
$HTTP_POST_FILES['userfile']['tmp_name'];
 
nom du fichier :
$HTTP_POST_FILES['userfile']['name'];
 
faits bien attention à vérifier le nom de sauvegarde !
si le client uploade un fichier portant le même nom qu'un fichier existant, il va l'écraser...


---------------
...oups kernel error...
Reply

Marsh Posté le 05-06-2003 à 16:50:48    

merci, c parfait :jap:


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le 05-06-2003 à 17:35:22    

Moi j'ai un souci lors de l'upload d'un fichier avec l'utilisation de la fonction copy()
voilà le code:

Code :
  1. if(!copy($source, $destination))


quand je fait un echo $source;
il m'envoie un nom bizarre, enfin de toute façon il ne veut pas le copié...
voilà le code exact:

Code :
  1. //le fichier à copié est stocké dans la variable $userfile
  2. if(strlen($userfile_name) && file_exists($userfile) && stristr($userfile_name, ".php" ) == "" ) { 
  3. $source=$userfile;
  4. $destination="../images/$userfile_name";
  5. if(!copy($source, $destination))
  6.   //message d'erreur
  7. //Et c'est sur ce test là que ca plante...
  8. ...
  9. }


Merci de m'aidé, là je ne comprend pas pourquoi echo $source  
me renvoye un truc du genre: ./php3vAww2
alors que l'on du fichier est image.jpg
...

Reply

Marsh Posté le 05-06-2003 à 19:52:03    

faut voir ce que contient $source et $destination.
ex:

Code :
  1. // reçu un fichier "userfile" dans un formulaire POST.
  2. $source= $_FILES['userfile']['tmp_name'];
  3. $destination= '../images/' . $_FILES['userfile']['name'];
  4. if (is_uploaded_file( $source) )
  5.    {
  6.     //vérification que c'est bien une image
  7.     $infos= getimagesize($source);
  8.     if ( !is_array($infos) )
  9.       {
  10. @unlink( $source );
  11. echo 'Le fichier n\'est pas une image !';
  12.         exit;
  13.       }
  14.     if (!@copy( $source, $destination) )
  15.       {
  16. @unlink( $source );
  17.         echo 'Le fichier n\'a pas pu être sauvé';
  18.         exit;
  19.       }
  20.     echo 'fichier sauvé';
  21.   }
  22. else
  23.   {
  24.    echo 'Aucun fichier n\'a ete uploade';
  25.    exit;
  26.   }


rem : il faut peut-être remplacer $_FILE par $HTTP_POST_FILE en fonction de ta config.


Message édité par ethernal le 05-06-2003 à 19:53:07

---------------
...oups kernel error...
Reply

Marsh Posté le 05-06-2003 à 19:54:43    

Tout juste ethernal!
C'est très bizarre comme erreur je trouve...
J'ai simplement mis:
./../mon repertoire
Au lieu de:
../morepertoire
Drôle d'erreur, je n'ai rien changé d'autre, ca venait de là, je ne pensait pas que ca pouvais venir d'un truc comme ca, je trouve ça plutôt bizarre...

Reply

Marsh Posté le 05-06-2003 à 19:55:53    

Hum...
Enfin bref ./../ au lieu de ../
 :sol:

Reply

Marsh Posté le 06-06-2003 à 15:27:23    

Spir a écrit :

Moi j'ai un souci lors de l'upload d'un fichier avec l'utilisation de la fonction copy()
voilà le code:

Code :
  1. if(!copy($source, $destination))


quand je fait un echo $source;
il m'envoie un nom bizarre, enfin de toute façon il ne veut pas le copié...
voilà le code exact:

Code :
  1. //le fichier à copié est stocké dans la variable $userfile
  2. if(strlen($userfile_name) && file_exists($userfile) && stristr($userfile_name, ".php" ) == "" ) { 
  3. $source=$userfile;
  4. $destination="../images/$userfile_name";
  5. if(!copy($source, $destination))
  6.   //message d'erreur
  7. //Et c'est sur ce test là que ca plante...
  8. ...
  9. }


Merci de m'aidé, là je ne comprend pas pourquoi echo $source  
me renvoye un truc du genre: ./php3vAww2
alors que l'on du fichier est image.jpg
...

j ai eu un problème similaire...résolu(empiriquement) en remplaçant copy() par move_uploaded()
en fait en local, j avais pas d erreur, et en test sur un serveur web, ca marchait pas :pt1cable:


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Sujets relatifs:

Leave a Replay

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