IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Petites questions sur le FTP


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut Petites questions sur le FTP
    Bonjour,

    alors voilà je dois créer une connexion FTP afin de copier un fichier d'une machine A à une machine B.
    Pour ce faire je voulais utiliser : le package : org.apache.commons.net.ftp
    en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.apache.commons.net.ftp;
    Le souci c'est que org.apache apparait comme une erreur dans éclipse.
    Auriez vous une idée ?

    Sinon j'aurais besoin d'un peu d'explication sur le fonctionnement du ftp en java (si vous avez le temps bien entendu).
    J'ai trouver ce http://www.developpez.net/forums/d627242/java/general-java/debuter/connexion-java-ftp/ qui correspond assez bien à ce que je voudrais faire me semble-t-il mais je n'arrive pas à faire de connexion ftp pour le moment.

    D'avance merci.
    Pavel

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Tu as téléchargé au moins cette librairie ? (http://commons.apache.org/net/) Parce que par defaut elle n'existe pas ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    En fait je m'en suis rendu compte après avoir poster le message, donc maintenant elle est reconnu.
    Je crée donc ma connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FTPClient connexion = new FTPClient();
    puis je cherche à joindre une ip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    connexion.connect(ip);
    connexion.login(user,password);
    Hors il me retourne une erreur style "Unhandled exception type IOException".
    Que cela veut-il dire ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Avec ce petit code plus verbeux et en changeant l'ip et le user/password tu n'as pas plus d'indication ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    boolean error = false;
        try {
          int reply;
          ftp.connect("ftp.foobar.com");
          System.out.println("Connected to " + server + ".");
          System.out.print(ftp.getReplyString());
     
          // After connection attempt, you should check the reply code to verify
          // success.
          reply = ftp.getReplyCode();
     
          if(!FTPReply.isPositiveCompletion(reply)) {
            ftp.disconnect();
            System.err.println("FTP server refused connection.");
            System.exit(1);
          }
          ... // transfer files
          ftp.logout();
        } catch(IOException e) {
          error = true;
          e.printStackTrace();
        } finally {
          if(ftp.isConnected()) {
            try {
              ftp.disconnect();
            } catch(IOException ioe) {
              // do nothing
            }
          }
          System.exit(error ? 1 : 0);
        }
    Car c'est un peu difficile a dire vu comme ca.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Je ne comprend pas vraiment tout : le "ftp.foobar.com" doit il être changer par une adresse de mon choix ?

    Ce que tu nomme "server" cela doit être une adresse ? dans ce cas sous quelle forme (string, int, long, etc...) ?

    et ton "ftp.quelquechose" à quoi correspond ton ftp ?

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Je ne comprend pas vraiment tout : le "ftp.foobar.com" doit il être changer par une adresse de mon choix ?
    A ton avis ...

    Ce que tu nomme "server" cela doit être une adresse ? dans ce cas sous quelle forme (string, int, long, etc...) ?
    Peut importe que ca soit un ip ou une adresse ca revient au même.

    et ton "ftp.quelquechose" à quoi correspond ton ftp ?
    Pas compris la question, mais l'exemple vient d'ici
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Pavel37 Voir le message
    Hors il me retourne une erreur style "Unhandled exception type IOException".
    Que cela veut-il dire ?
    Parce que c'est pas clair et qu'on a pas le code

    Soit le compilateur est occupé de te dire que le code renvoie potentiellement des IOException et tu as oublié de les traiter

    Soit le client FTP lance à l'exécution réellement une de ces erreur et comme tu ne nous affiche pas la stackTrace de l'erreur, impossible de t'aider. Utilise la méthode printStacktrace() de l'exception pour afficher sa stack.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par wax78 Voir le message
    A ton avis ...
    Si je pose la question c'est que je n'y comprend pas grand chose. Pour l'adresse, je peux mettre l'adresse sous la forme "http://etc..." mais est-ce que je peux la mettre en format "10.xx.xx.xx.xx" ? si c'est le cas sous quelle type la mettre (string ou un type particulier) ?

    Merci pour tes réponse en tout cas je m'y retoruve un peux mieux pour le moment.

    A tchizze je n'en est pas la moindre idée c un truc que j'ai trouver comme sa et comme je ne savais pas par ou commencer...

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Pavel37 Voir le message
    Pour l'adresse, je peux mettre l'adresse sous la forme "http://etc..." mais est-ce que je peux la mettre en format "10.xx.xx.xx.xx" ?


    Ouïe , pas mal de problème d'incompréhension jusque là !
    je te conseille de visiter ce lien ici histoire d'en savoir un peu plus sur ce qu'est une "adresse"

    Pour répondre à ta question, l'adresse sera plutot de la forme "ftp://etc..." étant donné que le protocole que tu veux utiliser est le protocole FTP et non HTTP.

    Dans ton code java tu n'as pas besoin de fournir le protocole que tu veux utiliser (étant donné que l'objet que tu utilises définit le protocole).
    Tu dois juste fournir le nom d'Host donc juste le "etc"

  10. #10
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Oui tu px la mettre sous forme de nom de serveur (mais surement pas avec http:// , mais tu px aussi la mettre sous forme d'ip 10.x.x.x

    Poste un peu ton code complet histoire de voir quelles seraient les erreurs sinon on saura jamais t'aider. (et eventuelement on te rajoutera ce qu'il faut pour le stacktrace).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Pour le moment vos conseils on été plus qu'avisé, j'arrive à me loguer sur une machine en ftp, a naviguer dans les dossiers.
    Néanmoins un nouveau problème se pose : je souhaiterai copier un fichier présent dans un dossier A sur un server A vers un dossier B sur un server B, toujours via le ftp.

    Je pensais faire une première copie du server A vers ma machine puis rouvrir un ftp vers le server B afin de copier a nouveau le fichier.

    Est-ce possible ? Est-ce optimiser ? Auriez vous d'autres idées ?

  12. #12
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Oui c'est tout a fait possible.
    Il est peut être même possible (a confirmer) de passer de l'un a l'autre directement sans "passer" par un fichier sur ta machine. (donc d'une connexion à l'autre).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pour le serveur à serveur, c'est théoriquement possible dans le protocole FTP. Seulement aucun serveur FTP un tant soit peu bien configuré ne tolérera ce genr de chose. Ca a été utilisé maintes fois dans le passé pour se servir d'un serveur FTP comme relai / proxy

  14. #14
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    Un peu comme le FXP non ? (je pensais utiliser la machine avec le programme java dessus comme relais en branchant les stream entres eux au départ, donc sans faire comme le ferait FXP).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Je partais plutôt sur l'idee de wax, mais ce n'est qu'un détail. Mon souci se situe plutôt dans le fait de transféré le fichier, comme m'y prendre. Avec un InputStream et un OutputStream ?

    D'avance merci

    EDIT : on peut faire une connection "par pont" à priori, je m'explique : il suffit de mettre une connection dans une connection et les deux machines peuvent communiquer (j'ai bien dis à priori !).

    Il ne me manque que les commandes pour copier un fichier... et la y a du boulot ^^

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Bon un peu de nouvelle, ma "connexion par pont" ne semble pas fonctionner,
    je me rabat sur de multiple connexion.
    En revanche comment fait on un get en ftp ?
    Quand je le fait il ne semble pas marcher.

    D'avance merci

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    montre le code que tu utilise.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    je fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get nomdemonfichier.extension c:source /** c:source est l'endroit ou je veux que le fichier arrive soit sur mon disque C, dossier source

  19. #19
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 977
    Points
    7 977
    Par défaut
    On attendait plutôt un code en java a priori ^^ ou alors j'ai loupé un truc.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 33
    Points : 13
    Points
    13
    Par défaut
    Avec la bibliothèque donnée un peu plus haut tu peux balancer des commande ftp, cette commande est faite sur un terminal qui me permet de tester mes commande avant de les implémenter dans mon code ^^.

    Si elle ne marche pas en ftp pur et dure, je ne peux pas les mettre dans mon code, c'est pourquoi j'ai besoin de comprendre comment elle fonctionne.

    EDIT : Bon, j'ai réussi à récupéré mon fichier. Un nouveau problème se pose à moi : les serveur que je cherche a joindre sont des serveur AS400 (basé sur l'os400 pour ceux qui connaissent). Pour faire simple j'ai des fichier de type fichier qui eux ne pose pas de problème. J'en est d'autre qui sont de type PGM (programme) qui ne sont ni visible avec un ls ni copiable, il faudrait que je puisse le faire.

    Auriez vous une idée ?

Discussions similaires

  1. [ATL] Petite question sur les progress bar
    Par MrMaze dans le forum MFC
    Réponses: 1
    Dernier message: 06/05/2005, 09h40
  2. [Visuel XP] Petite question sur le theme XP...
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 12
    Dernier message: 20/01/2005, 14h41
  3. petite question sur le composant IBX ...
    Par vbcasimir dans le forum Bases de données
    Réponses: 4
    Dernier message: 05/01/2005, 10h33
  4. Réponses: 3
    Dernier message: 08/12/2004, 13h58
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo