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

  FORUM HardWare.fr
  Programmation
  Java

  Envoyer des fichiers sur un FTP depuis un programme Java...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoyer des fichiers sur un FTP depuis un programme Java...

n°1255750
ralkif
Posté le 30-11-2005 à 01:22:23  profilanswer
 

Bonjour,
 
Voila j'essaye d'envoyer des fichiers sur un seveur FTP depuis un programme Java...
Pour se faire, j'utilise une classe que j'ai trouvée sur le net à l'adresse suivante :
http://java.developpez.com/faq/jav [...] ction.java
 
J'ai testé cette classe dans un programme hier soir et le fichier a été uploadé avec succès...
Maintenant plus moyen j'ai toujours cette erreur :
 

Code :
  1. 220 Serveur de mise a jour des pages perso de Free.fr version [Feb  7 2005 13:55:51]
  2. 331 Password required for xxxx.
  3. 230 User xxxxlogged in.
  4. 501 PORT address does not match originator.
  5. 221 Goodbye.


 
Voici mon programme Java :
 

Code :
  1. import java.io.IOException;
  2. import java.net.UnknownHostException;
  3. public class Test {
  4. public static void main(String[] args) {
  5.  FTPConnection connection=new FTPConnection();
  6.  String host="ftpperso.free.fr";
  7.  String username="xxxx";
  8.  String password="xxxx";
  9.  try {
  10.   if (connection.connect(host)) {
  11.    if (connection.login(username, password)) {
  12.     System.out.println(connection.uploadFile("noir_dez_18.jpg" ));
  13.    }
  14.    connection.disconnect();
  15.   }
  16.  } catch (UnknownHostException e) {
  17.   // TODO Auto-generated catch block
  18.   e.printStackTrace();
  19.  } catch (IOException e) {
  20.   // TODO Auto-generated catch block
  21.   e.printStackTrace();
  22.  }
  23. }
  24. }


 
J'ai essayé de désactiver mon pare feu mais ca ne change rien...
 
Merci d'avance pour votre aide...


Message édité par ralkif le 30-11-2005 à 01:24:24
mood
Publicité
Posté le 30-11-2005 à 01:22:23  profilanswer
 

n°1255752
the real m​oins moins
Posté le 30-11-2005 à 01:27:22  profilanswer
 

passe en mode passif; ptain mais c'est quoi le rapport avec la prog? [:ideenoire] z'ont plus de forum à developpez.com ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1255763
ralkif
Posté le 30-11-2005 à 01:45:48  profilanswer
 

the real moins moins a écrit :

passe en mode passif; ptain mais c'est quoi le rapport avec la prog? [:ideenoire] z'ont plus de forum à developpez.com ?


 
bon alors j'ai modifié :
outputStream.println("port " + addrshorts[0] + "," + addrshorts[1] +
                             "," + addrshorts[2] + "," + addrshorts[3] + "," +
                             ((localport & 0xff00) >> 8) + "," +
                             (localport & 0x00ff));
 
par :  
outputStream.println("pasv " + addrshorts[0] + "," + addrshorts[1] +
                             "," + addrshorts[2] + "," + addrshorts[3] + "," +
                             ((localport & 0xff00) >> 8) + "," +
                             (localport & 0x00ff));
 
c'est bien ca ?
Voila ce que j'obtiens :
 

Code :
  1. 220 Serveur de mise a jour des pages perso de Free.fr version [Feb  7 2005 13:55:51]
  2. 331 Password required for xxxx.
  3. 230 User xxxx logged in.
  4. 227 Entering Passive Mode (212,27,63,3,53,238).
  5. 200 Type set to I
  6. 150 Opening BINARY mode data connection for noir_dez_18.jpg


 
Le problème maitenant c'est qu'il bloque à ce moment la et ne fait plus rien...
 

Code :
  1. public boolean executeDataCommand(String command, InputStream in)
  2.         throws IOException
  3.     {
  4.         // Open a data socket on this computer
  5.         ServerSocket serverSocket = new ServerSocket(0);
  6.         if (!setupDataPort(command, serverSocket)) return false;
  7.         Socket clientSocket = serverSocket.accept();           <------------------- C'est ici que ca bloque...
  8.         System.out.println("aa" );
  9.         // Transfer the data
  10.         OutputStream out = clientSocket.getOutputStream();
  11.         transferData(in, out);
  12.         // Clean up the data structures
  13.         out.close();
  14.         clientSocket.close();
  15.         serverSocket.close();
  16.         return isPositiveCompleteResponse(getServerReply());   
  17.     }


 
merci pr ton aide ;)

n°1255781
ralkif
Posté le 30-11-2005 à 08:32:19  profilanswer
 

up!
help please ! je comprends pas pourquoi il ne veut pas continuer...
merci !

n°1255929
the real m​oins moins
Posté le 30-11-2005 à 12:13:24  profilanswer
 

euh, pq tu vas bidouiller ta librairie ftp? :heink: c'est laquelle, déjà ? y'a pas une méthode pour passer en passive?  
j'suis pas expert en ftp, mais jpense pas que tu doives virer le PORT !?
bref, si c'est une question de réseaux et protocoles, spa le bon forum :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1256041
ralkif
Posté le 30-11-2005 à 15:04:43  profilanswer
 

the real moins moins a écrit :

euh, pq tu vas bidouiller ta librairie ftp? :heink: c'est laquelle, déjà ? y'a pas une méthode pour passer en passive?  
j'suis pas expert en ftp, mais jpense pas que tu doives virer le PORT !?
bref, si c'est une question de réseaux et protocoles, spa le bon forum :o


 
ben en fait la librairie que j'ai (cf le lien ds mon premier message) n'utilise pas le mode passif du moins il me semble...
 
En fait quand j'utilise filezilla pr envoyer mes photos sur le ftp, j'ai bien la meme série d'instrcution ftp quand je lance mon programme java...c'est juste qu'il ne fait rien au moment de l'acceptation de la socket...
 
Sinon si quelqu'un connait une autre librairie ftp dont je pourrais me servir :)
 
encore merci pr ton aide !
 
ps : je vais mettre le lien vers ce sujet ds le forum réseaux...

n°1256131
Bidem
Posté le 30-11-2005 à 16:30:10  profilanswer
 
n°1256188
ralkif
Posté le 30-11-2005 à 17:18:43  profilanswer
 

merci ! ca a lair pas mal effectivement...je vais regarder ca de plus près ;)

n°1256423
ralkif
Posté le 30-11-2005 à 21:42:35  profilanswer
 


 
alors je me suis servi de la classe FTPClient de http://jakarta.apache.org/commons/net/
 
voici ce que je test :
 

Code :
  1. FTPClient f=new FTPClient();
  2.  try {
  3.   f.connect("ftpperso.free.fr" );
  4.   f.login("xxx","xxx" );
  5.   f.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
  6.   f.enterRemotePassiveMode();
  7.   System.out.println(f.remoteStore("noir_dez_18.jpg" ));
  8.   f.disconnect();
  9.  }


 
Il crée bien le fichier sur le serveur mais celui fait 0 octet...une idée ?
 
merci !

n°1256463
souk
Tourist
Posté le 30-11-2005 à 22:26:31  profilanswer
 

parfait, c'est tout a fait normal [:dawa]

mood
Publicité
Posté le 30-11-2005 à 22:26:31  profilanswer
 

n°1256552
ralkif
Posté le 01-12-2005 à 00:55:13  profilanswer
 

souk a écrit :

parfait, c'est tout a fait normal [:dawa]


 
Pourquoi dis-tu que c'est tout a fait normal ?

n°1256562
ralkif
Posté le 01-12-2005 à 02:08:43  profilanswer
 

j'ai essayé ceci :
 
 
   f.connect("ftpperso.free.fr" );
   f.login("xxxx","xxxx" );
   f.enterRemotePassiveMode();
   f.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE);
   f.setFileType(FTPClient.BINARY_FILE_TYPE);
   
   FileInputStream fis=new FileInputStream(new File("noir_dez_18.jpg" ));
   System.out.println(f.storeFile("noir_dez_18.jpg",fis));
   System.out.println(f.getReplyString());
   f.disconnect();
 
Il m'affiche ceci :
 
false
200 Type set to I
 
 
Que puis-je faire ?

n°1256762
ralkif
Posté le 01-12-2005 à 13:06:48  profilanswer
 

up please !!!

n°1256778
souk
Tourist
Posté le 01-12-2005 à 13:25:15  profilanswer
 

question tres conne hein, mais vu que le serveur FTP te dit que tout est ok et que le FTPClient te dit qu'il a rien pu faire, est-ce que ton fichier noir_dez_18.jpg tu est sur qu'il existe a l'endroit ou tu le prends ??
 
genre  

Code :
  1. File image = new File("noir_dez_18.jpg" );
  2. System.out.println(image.exists());


 
ca t'affiche quoi ? [:dawa]

n°1256781
ralkif
Posté le 01-12-2005 à 13:30:08  profilanswer
 

Suis pas chez moi la...
Je regarde ca tou de suite en rentrant mais à priori je pense qu'elle est au bon endroit (dans le répertoire ou se trouve le .class)...

n°1257088
ralkif
Posté le 01-12-2005 à 19:22:50  profilanswer
 

Je viens de tester :

Code :
  1. File file=new File("noir_dez_18.jpg" );
  2.   System.out.println("File->"+file.exists());


 
Résultat :  

Code :
  1. File->true


 
Donc le fichier existe bien...Mais c'était une bonne idée ;)
Je vois vraiment pas pourquoi il ne fait pas le transfert...
 
Help !!!!

n°1257187
ralkif
Posté le 01-12-2005 à 23:11:01  profilanswer
 

c'est bon j'ai trouvé :-)

Code :
  1. FTPClient client=new FTPClient();
  2.  String host="ftpperso.free.fr";
  3.  String username="xxx";
  4.  String password="xxx";
  5.  try {
  6.   client.connect(host);
  7.   client.login(username,password);
  8.   client.setFileType(FTPClient.BINARY_FILE_TYPE);
  9.   File f=new File(rep);
  10.   FileInputStream in= new FileInputStream("noir_dez_18.jpg" );
  11.   client.storeFile("noir_dez_18.jpg",in);
  12.  }


Merci a tous !


Message édité par ralkif le 01-12-2005 à 23:14:31
n°1271076
koolway
Posté le 21-12-2005 à 10:36:04  profilanswer
 

Désolé de poser une question aussi "neu-neu" mais :  
 
pour télécharger une librairie (http://jakarta.apache.org/site/downloads/downloads_commons-net.cgi)
il faut prendre quel(s) fichier(s)?
 
et après, où faut-il les mettre?? (j'utilise JBuilder Foundation 2005)
 
merci à vous. :s

n°1271184
the real m​oins moins
Posté le 21-12-2005 à 12:54:15  profilanswer
 

> topics "debutant" et "classpath"


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1271227
wapcamer
Posté le 21-12-2005 à 13:34:14  profilanswer
 

koolway a écrit :

Désolé de poser une question aussi "neu-neu" mais :  
 
pour télécharger une librairie (http://jakarta.apache.org/site/downloads/downloads_commons-net.cgi)
il faut prendre quel(s) fichier(s)?
 
et après, où faut-il les mettre?? (j'utilise JBuilder Foundation 2005)
 
merci à vous. :s


 
tu prends le .jar et tu le mets dans ton classpath (ou tu rajoutes le .jar dans ton classpath)


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
n°1271283
koolway
Posté le 21-12-2005 à 14:32:03  profilanswer
 

Merci pour vos réponses..  
 
j'ai essayé par Outils-->Configurer-->Bibliothèques.
 
la j'ai créé un nouveau dossier dans Jbuilder.
dans ce dossier, j'ai ajouter dans la classe le .jar (commons-net-1.4.1.jar)
Ne sachant pas ce qu'il faut mettre dans la source, j'ai fait pareil.
 
Mais ca ne marche pas.  :??:  
 
Il faut mettre quoi dans classe et source?  
 
merci


Message édité par koolway le 21-12-2005 à 14:32:28
n°1271290
souk
Tourist
Posté le 21-12-2005 à 14:35:49  profilanswer
 

the real moins moins a écrit :

> topics "debutant" et "classpath"


 [:pingouino]  
il vaut mieux commencer par lire ces deux topics et comprendre ce qu'est le classpath

n°1271306
koolway
Posté le 21-12-2005 à 14:50:40  profilanswer
 

je sais ce qu'est un classpath.
je sais les mettre ds la ligne de compilation du prog.
 
moi c'est juste pour savoir que mettre dans jbuilder?!?  
pour pouvoir profiter des petits menus auto lors de la frappe.
 
j'ai beau ajouter le .jar dans la classe et dans la source. que dalle.

Message cité 1 fois
Message édité par koolway le 21-12-2005 à 14:53:43
n°1271312
the real m​oins moins
Posté le 21-12-2005 à 14:56:00  profilanswer
 

koolway a écrit :

je sais ce qu'est un classpath.


 

koolway a écrit :

j'ai beau ajouter le .jar dans la classe et dans la source. que dalle.


'k, lol [:pingouino]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1271314
koolway
Posté le 21-12-2005 à 15:00:45  profilanswer
 

c'est Jbuilder que je capte pas...
suffit juste de me dire :  
dans l'onglet classe tu mets : XXX
dans l'onglet source tu mets : YYY..


Message édité par koolway le 21-12-2005 à 15:02:41
mood
Publicité
Posté le   profilanswer
 


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

  Envoyer des fichiers sur un FTP depuis un programme Java...

 

Sujets relatifs
Comment envoyer des SMS dépuis une applicationMacro : ouverture de fichiers dans un répertoire
[GLUT] erreur bizarre au lancement du programmedébutant- créer un programme
[java] Agrandir le contenu d'une tab en même temps que la tab[Java] Les hint
[JAVA] Evenement utilisateur.[noob] programme en console --> tache de fond
[TCP] Perte de donnée lors d'un transfert de fichiers[Java] Patron
Plus de sujets relatifs à : Envoyer des fichiers sur un FTP depuis un programme Java...


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