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

  FORUM HardWare.fr
  Programmation
  Java

  ftp probleme upload consécutifs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ftp probleme upload consécutifs

n°1863340
anakin2haw​k
Posté le 18-03-2009 à 22:37:13  profilanswer
 

Bonjour,  
 
Je suis en train de développer une applet d'upload ftp et je me penche sur l'upload de dossiers.
Pour cela, j'utilise les inputstream et outputstream et la classe FTPClient de org.apache.commons.net.ftp.
 
Pour uploader un fichier, cela fonctionne mais dès que je veux uploader deux fichiers à la suite, mon appli plante.
 
Je m'explique avec un peu de code :
voici la méthode quui pose problème.
uploadOk est une variable qui vaut tout le temps true tant qu'on ne quitte pas la fenetre principale.
Connexion Ftp ets un FTPClient qui est connecté. j'ai utilisé isConnscted pour m'en assurer tout au long du programme.
 
String p est le chemin du dossier à uploadé : C;//users par exemple
Code :

Code :
  1. public Void uploadDirectory(String p ,ConnexionFtp ftp)
  2.     {
  3.    
  4.    
  5.      File g = new File(p);
  6.    
  7.         try {   // pour récupérer les exceptions dues au FTPClient
  8.    
  9.        ftp.mkd(g.getName()); on crée le répertoire pour uploader les fichiers
  10.   ftp.cwd(g.getName());
  11.          File[] tab =g.listFiles(); on liste tous les fichiers du dossier
  12.          for(int i = 0;i<tab.length;i++)
  13.          {
  14.        
  15.          if(tab[i].isDirectory())        // si le fichier est dossier recurence  
  16.          {
  17.           if(uploadOk==true)
  18.                  uploadDirectory(tab[i].getAbsolutePath(),ftp);
  19.          }
  20.                 if(tab[i].isFile()) // si le fichier est un fichier, on l'upload
  21.                 {
  22.      
  23.              if(uploadOk==true)
  24.              {     
  25.           
  26.                File r=new File(tab[i].getAbsolutePath());     
  27.      
  28.                in = new FileInputStream(tab[i].getAbsolutePath());// On initialise les flux de données
  29.                       out = ftp.storeFileStream(tab[i].getName());
  30.        
  31.        //C'est ici que le programme s'arrete après la première boucle
  32.        System.out.println(ftp.getReplyString());
  33.       if(FTPReply.isPositiveCompletion(ftp.getReplyCode()))  // si la réponse de transfert de fichier est négative, on arrete tout
  34.         {   
  35.                          out.close();
  36.                                 in.close();
  37.                         out.flush();
  38.                                  System.out.println("erreur" );
  39.                 }
  40.          else
  41.         {
  42.                       
  43.         while(uploadOk) { // Tant que le nombre de bytes restant a transférer continue à etre positif
  44.              
  45.     
  46.              int bytes = in.read(buffer);
  47.            
  48.                 if (bytes < 0) // Si il n'y a plus de données dans le flux de donnée  on sort de la boucle
  49.                 break;
  50.                                out.write(buffer, 0, bytes);//upload par buffering
  51.                  
  52.                         }
  53.          in.close();
  54.          out.flush();
  55.                  out.close();
  56.          System.out.println(ftp.getReplyString());
  57.    } 
  58.           }
  59.           else
  60.           {
  61.                System.out.println("uploadok=false" );
  62.           }
  63.          System.out.println("1ère boucle passée" );
  64.           }//fin de la boucle isFiles
  65.          
  66.          }//fin de la boucle for
  67.    
  68.           ftp.cdup();
  69.          } catch (IOException e)
  70.                 {
  71.   // TODO Auto-generated catch block
  72.   e.printStackTrace();
  73.  }
  74. }


Mon premier fichier est uploadé mais dès le deuxième, cela ne marche plus.
Arret au niveau de ispositivecompletion.
 
Les FTP.getreply me donnent 226 transfer complete après le premier upload  
mais je ne vois pas le 150 open data connection pour le début du deuxième upload.
 
J'ai essayé de faire un while qui attende une réponse 150 du server mais le programme tourne en boucle.
 
J'espère avoir été claire et vous remercie d'avance pour votre aide


Message édité par anakin2hawk le 20-03-2009 à 10:29:24
mood
Publicité
Posté le 18-03-2009 à 22:37:13  profilanswer
 


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

  ftp probleme upload consécutifs

 

Sujets relatifs
[WS Axis] Problème de sérialisation[Visual C#] Problème projet après changement de PC
Problème mystérieux en vbscriptprobléme utf-8 iso
Probleme PERL + CGIprobleme avec un popup javasript
Probleme/questions Graphe de Scene avec Java3DProbléme CSS
[VB.NET] Problème de majuscules / minusculesAppllet Java problème lors de connexion ftp
Plus de sujets relatifs à : ftp probleme upload consécutifs


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