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 :

Connexion Java FTP


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Connexion Java FTP
    Bonjour,

    Je débute sous Java et je suis travaille sous Eclipse 3.4.1
    J'aimerais effectuer quelque chose qui doit être relativement simple mais qui ne fonctionne pas chez moi : se connecter sur un FTP via mon programme java via l'api commons.net :
    voici mon code :

    import org.apache.commons.net.ftp
    ...
    FTPClient client = new FTPClient();
    client.connect(IP);
    client.login(user,password);

    ...

    or cela ne fonctionne pas et me retourne ces erreurs :
    Exception in thread "main" java.net.UnknownHostException: IP
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at org.apache.commons.net.DefaultSocketFactory.createSocket(DefaultSocketFactory.java:53)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:162)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:250)
    at Main.test(Main.java:36)
    at Main.main(Main.java:28)


    Mon FTP fonctionne car il est bien accessible depuis mon navigateur Firefox et je peux ajouter/modifier des fichiers et ces modifications faites dans le répertoire de stockage du FTP (sur mon hdd) se répercutent bien sur le FTP...
    PS : j'ai créé un FTP de test et provisoire avec le logiciel "BulletProof FTP Server"

    Merci

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Ca veut dire ce que ca veut dire, il ne trouve pas le server IP. Essaie ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FTPClient client = new FTPClient();
    client.connect("127.0.0.1", 21);
    client.login(user,password);
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci,
    Je peux me connecter. Mon objectif est d'envoyer un fichier sur le FTP.
    Mon code ci-dessous me permet de récupérer un fichier sur un FTP et de le copier sur mon hdd : un dowload donc.
    Cela fonctionne très bien.
    Cependant je souhaiterais l'inverse, c'est à dire un Upload et je n'y arrive pas. J'ai essayé différentes façon mais aucune ne fonctionne. Cela me bloque depuis plusieurs jours (c'est pour cela que je demandais une connexion différents au post précédent) Pouvez-vous m'aider? Merci

    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
    public static void FonctionneEnDl() throws SocketException, IOException
    	{
    		String localfile="C:/BASETEST/1.TXT";
    		String serverFile="ftp://@IP:Port/1.txt;type=txt";
     
    		URL url = new URL(serverFile);
    		URLConnection con = url.openConnection();
    		BufferedInputStream in = new BufferedInputStream(con.getInputStream());
    		FileOutputStream out = new FileOutputStream(localfile);
     
    		int i = 0;
    		byte[] bytesIn = new byte[1024];
    		while ((i = in.read(bytesIn)) >= 0)
    		{
    			out.write(bytesIn, 0, i);
    		}
    		out.close();
    		in.close();
    	}

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	// Download
    	RandomAccessFile outfile2 = new RandomAccessFile(inputFileName, "rw");
    	try {
    		FileOutputStream fileStream = new FileOutputStream(outfile2.getFD());
    		if (ftp.retrieveFile(tmpFileName, fileStream)) {
    			// Download OK
    		} else {
    			// Erreur
    		}
    	} finally {
    		outfile2.close();
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	// Upload
    	RandomAccessFile infile2 = new RandomAccessFile(tempOkFile, "r");
    	try {
    		FileInputStream fileStream2 = new FileInputStream(infile2.getFD());
    		if (ftp.storeFile(StringFormat.Replace(distantFileName, ".BAR", ".OK"), fileStream2)) {
    			// Upload OK
    		} else {
    			// Erreur
    		}
    	} finally {
    		infile2.close();
    	}
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Serait-il possible de m'expliquer votre code pour l'upload? je ne le comprend pas du tout. Il est totalement différent du code que j'ai précédemment posté
    Merci

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Il est surtout bien plus simple

    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
    	// Upload
    	// Creation d'un RandomAccessFile sur le fichier tempOkFile (type String, le chemin vers le fichier à envoyer)
    	// flag 'r' pour lecture seule
    	RandomAccessFile infile2 = new RandomAccessFile(tempOkFile, "r");
    	try {
    		FileInputStream fileStream2 = new FileInputStream(infile2.getFD()); // J'ai pas besoin d'expliquer ca j'espère
    		// J'envoie le fichier vers un fichier de destination qui s'appelle cible par exemple...
    		if (ftp.storeFile("cible", fileStream2)) {
    			// Upload OK
    		} else {
    			// Erreur
    		}
    	} finally {
    		infile2.close(); // On ferme le flux (super important)
    	}
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    merci,
    Ceci est le fichier que je veux envoyer : "C:/TEST.TXT"
    Les étapes : se connecter, envoyer 1.txt sur le ftp, fermer

    le "cible" sera le nom du fichier sur le ftp?

    Code :

    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
     
     
    FTPClient client = new FTPClient();
    client.connect("127.0.0.1", 21);
    client.login(user,password);
     
    		RandomAccessFile infile2 = new RandomAccessFile("C:/TEST.TXT","r");  //mon fichier que je veux envoyer
    		try {
    			FileInputStream fileStream2 = new FileInputStream(infile2.getFD()); 
    			if (client.storeFile("cible", fileStream2)) {
    				// Upload OK
    			} else {
    				// Erreur
    			}
    		} finally {
    			infile2.close(); 
    		}
    C'est tout ce qu'il faut faire? je suppose que non mais je nage de plus en plus

  8. #8
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par John0123 Voir le message
    C'est tout ce qu'il faut faire? je suppose que non mais je nage de plus en plus
    Essaie... ca ne sert à rien de poser une question si tu n'as même pas essayé le code pour voir ce que ca fait. Tu pourrais résoudre toi-même les choses qui manqueraient.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

Discussions similaires

  1. Connexion Java FTP
    Par radovan dans le forum Général Java
    Réponses: 4
    Dernier message: 13/02/2012, 20h11
  2. Erreur de connexion : java RMI & linux
    Par pedouille dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/05/2006, 20h04
  3. Connexion Serveur FTP
    Par black is beautiful dans le forum Développement
    Réponses: 4
    Dernier message: 02/05/2006, 11h29
  4. Connexion Java
    Par Alain_B dans le forum Outils
    Réponses: 1
    Dernier message: 19/04/2006, 16h57
  5. Connexion compte ftp
    Par tomfoot dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/02/2006, 14h37

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