Question sur upload de fichier

Question sur upload de fichier - PHP - Programmation

Marsh Posté le 15-04-2005 à 09:11:33    

Bonjour,  
 
J'ai écris un script php récupérant le fichier envoyé via un formulaire HTML
et le transférer dans le dossier voulu (spécifier dans le code)
 
Je voudrais savoir s'il est possible de choisir pour l'utilisateur le dossier de destination??
 
Si oui. Comment faire?
 
Merci...

Reply

Marsh Posté le 15-04-2005 à 09:11:33   

Reply

Marsh Posté le 15-04-2005 à 09:52:03    

ben dans ton formulaire, tu rajoutes un champ qui liste les répertoires de destination possibles (j'imagine que tu ne vas tout de même pas laisser l'utilisateur saisir avec ces petites mains le nom du répertoire)...

Reply

Marsh Posté le 18-04-2005 à 14:27:17    

En fait je veux faire la même chose, c'est à dire que le client puissent choisir un repertoire sur le serveur pour recuperer le chemin, il me faudrait une espece de Opendialog mais j'y arrive pas...
Me dites pas que je suis obligé de tapper le script ?
Si vous avez une solution ça m'aidera beauocup.

Reply

Marsh Posté le 18-04-2005 à 14:43:55    

Moi j'ai réussi!
 
En fait, j'ai écris un .html
dans lequel on peut choisir le fichier a uploadé (à l'aide d'un parcourir...)
et le dossier de destination (à l'aide d'un menu déroulant)
 
Ensuite dans mon script php je récupère le choix de l'utilisateur pour le dossier de destination avec $_POST['folder'] et mon fichier se copie...
 
Voila! En espérant que ca t'aide...

Reply

Marsh Posté le 18-04-2005 à 15:27:26    

Ben moi je bloque sur le choix du fichier, j'aimerais bien faire un parcourir mais je vois pas trop comment faire, faut dire aussi que je débute en php...
Tu n'as pas une adresse ou je pourrais me renseigner d'avantage car je tourne en rond...

Reply

Marsh Posté le 18-04-2005 à 15:44:01    

Moi aussi j'aimerais faire un parcourir pour le choix du dossier de destination...
Mais jusqu'a présent je n'ai pas réussi.
 
Qqn sait -il comment faire??
 
Si jamais tu trouves, tiens moi au courant
 
Merci...

Reply

Marsh Posté le 18-04-2005 à 15:52:01    

Putin j'y crois pas j'ai cherché pendant des heures et c'est TOUT simple en fait:
 
<form enctype="multipart/form-data" method="post" action="upload.php">
   Fichier: <input type="file" name="fichier" size="35" />
   <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
   <input type="submit" value="Envoyer" name="cmdupload" />
   <input type="reset" value="Vider" />
  </form>
 

Reply

Marsh Posté le 18-04-2005 à 15:54:28    

Mais bon ça nous dit toujours pas comment faire avec le chemin de destination ;-(

Reply

Marsh Posté le 19-04-2005 à 10:36:59    

finalement je n'ai pas besoin d'indiquer le chemin de destination puisque sur le serveur ça doit etre le meme chemin....
Mais j'ai un probleme ça ne me transfere pas tous les types de fichiers par exemple les .txt ça marche mais les .ini ça ne marche pas.
Comment faire pour transferer toute sorte de fichier ?

Reply

Marsh Posté le 19-04-2005 à 11:51:22    

Probleme résolu.
Mais j'ai un autre probleme je voudrais récuperer le path initial du fichier et non pas le path du fichier temporaire apres l'avoir téléchargé.
C'est possible ?

Reply

Marsh Posté le 19-04-2005 à 11:51:22   

Reply

Marsh Posté le 19-04-2005 à 11:57:48    

Salut,  :hello:  
Pour les fihciers ini, il serait peut etre bien de nous montrer ton script...
 
Edit : Je voit pas en quoi le path du fichier t'intéresse, puisque c'est le même que le script php qui copy le fichier  :pt1cable:


Message édité par zakinster le 19-04-2005 à 12:07:24
Reply

Marsh Posté le 19-04-2005 à 15:53:44    

J'ai résolu le probleme pour avoir le path mais apres il faut que je teste si le chemin entrée existe bien c'est a dire si c'est un fichier or la fonction is_file() semble marcher quand elle le veut c'est byzarre uen fois elle me dit que ce sont des fichiers et une fois non...
 
Indulgence je débute ;-)
 
<? // ne pas sauter de ligne car le header() ne prnedra pas !!
$correcte="vrai" ;
$bool=1 ;
 
if (isset($filepath))
{
   //$filepath=stripslashes($filepath);
   
   print("voici le chemin $filepath" );
   $bool=is_file($filepath); // retourne 1 si c'est un fichier
   print(" $bool " );
}
 
 
if($bool!==1)
{
    $correcte="faux" ;
    $message="<font color=\"red\"><i>Fichier inexistant ou nom incorrecte !!</i></font>" ;
}
if (  ($bool==1) && (isset ($filepath) )  )
{
    $file=basename($filepath);
    if($filepath!="sec.ini" )
    {
  print("fichier correcte cependant c'est pas un 'sec.ini' " );
    }
    else
    {    $filepath=basename($filepath);
        print(" Super: $filepath " );
    }
}
print("
 
<html>
<head>
<title>Téléchargement d'un fichier</title>
</head>
 
<form  action=\" $PHP_SELF \" method=\"get\" name=\"formulaire\">
    <strong>Please select the file to parse :</strong>
    <input type=\"file\" name=\"filepath\">  
    <input type=\"submit\" value=\"Ok\">
 <input type=\"reset\" name=\"clean\">  " ); if ($correcte=="faux" ){echo $message ;} print("
</form>
</body>
</html>
" );
 
?>

Reply

Marsh Posté le 19-04-2005 à 16:19:11    

Ha je pense savoir ce que c'est, en fait il faut que je teste chez le client si le fichier existe ! la c'etait un coup de chance car le fichier existait aussi sur le serveur et à la même adresse.

Reply

Marsh Posté le 20-04-2005 à 13:52:33    

Si non ai lieu de vérifier chez le client si le fichier existe, je peux aussi empecher la séléection manuelle dans le browse mais comment on fait pour "griser" un browse de façon à le forcer à choisir dans la liste ?

Reply

Marsh Posté le 21-04-2005 à 11:09:03    

michou357 a écrit :

Si non ai lieu de vérifier chez le client si le fichier existe, je peux aussi empecher la séléection manuelle dans le browse mais comment on fait pour "griser" un browse de façon à le forcer à choisir dans la liste ?


 
pour info, tu peux pas tester avec php (ni JS) si un fichier existe chez le client!

Reply

Marsh Posté le 21-04-2005 à 11:17:39    

michou357 a écrit :

Si non ai lieu de vérifier chez le client si le fichier existe, je peux aussi empecher la séléection manuelle dans le browse mais comment on fait pour "griser" un browse de façon à le forcer à choisir dans la liste ?


 
Je ne comprend pas vraiment ton post :??:  Tu veux télécharger un fichier chez un client sans que celui-ci n'est rien à dire ? Dans quel but ?  :pt1cable:  


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 22-04-2005 à 08:02:08    

j'avais pensé à ça au debut mais ils ne veulent pas me donner les droits.
if (file_existe("\\adresse_IP\c:$\adresse_fichier" )
....
En fait je fais un stage et je dois permettre aux utilisateurs de s'identifier à travers une interface web et ensuite ils pourront transferer et modifier des fichiers sur les postes du reseau.
C'est pour ça que s' ils me donnent un fichier à modifier donc le path je devais savoir si il existe mais j'ai regler le probleme avec un "onpress=nom_formulaire.focus.blur()".
 
Mais maintenant j'ai un autre probleme.
J'ai une page ou j'ai deux formulaire  
- l'un ou je demande l'adresse du fichier à modifier    (utilisation methode get).
- l'autre ou je demande le fichier qui va remplaçer l'autre et celui la je le télécharge sur le serveur (methode post).
Le probleme c'est que je voudrais un seul bouton de validation pour les deux or je suis obligé de mettre 2 submit et je trouve pas ça tres zoli.
 
 
<!-- Début du formmulaire de sélection du path --!>
<form  action=\"temp.php\" name=\"formulaire\ enctype=\"multipart/form-data\" method=get>
    <strong>Selectionnez le sec.ini à modifier :</strong>
    <input type=\"file\" name=\"filepath\" onKeyPress=\"formulaire.filepath.blur() \"> " );
  <input type=\"reset\" name=\"clean\">
  <input type=\"submit\" value=\"valider\" class=\"bouton\" >  
 
</form>
 
 
<!-- Début du formulaire de sélection du fichier --!>
<form class=\"saisie2\" action=\"temp.php\" name=\"formulaire2\" enctype=\"multipart/form-data\" method=post>
    <strong>Selectionnez son remplaçant :</strong>
 <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000000\">
 <input type=\"file\" name=\"userfile\">
 <input type=\"reset\" name=\"clean\">  
 <input type=\"submit\" value=\"OK\" class=\"bouton\" >
</form>

Reply

Marsh Posté le 22-04-2005 à 10:17:40    

Fait un seul formulaire avec la méthode POST ou GET, je voie pas le problème...


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Sujets relatifs:

Leave a Replay

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