comment exécuter en java un ensemble de commande ftp - Java - Programmation
Marsh Posté le 17-02-2009 à 13:26:10
Pour du FTP tu peut utiliser la librairie apache commons-net qui inclus un client FTP.
Marsh Posté le 17-02-2009 à 18:31:37
J'ai pas bien compris tu peux m'indiquer le lien pour le downloader. Et l'utilisation svp
Marsh Posté le 17-02-2009 à 19:39:32
La page d'accueil:
http://commons.apache.org/net/
Pour télécharger:
http://commons.apache.org/downloads/download_net.cgi
Et la Javadoc:
http://commons.apache.org/net/apidocs/index.html
Ce qui t'intéresse se trouve dans le package org.apache.commons.net.ftp
Marsh Posté le 19-02-2009 à 11:06:53
Merci ça m'a vraiment aidé j'arrive à me connecter au serveur avec le code suivant :
public void connexionServeurFTP( String server,String username,String password){
FTPClient ftp = new FTPClient ();
//try {
// Connect and logon to FTP Server
int reply;
try {
ftp.connect(server);
ftp.login(username,password);
System.out.println("Connected to " + server + "." );
System.out.print("Ftp reply :"+ ftp.getReplyString());
// After connection attempt, you should check the reply code to verify
// success.
reply = ftp.getReplyCode();
System.out.print("Reply code :"+ reply);
if(!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.err.println("FTP server refused connection." );
System.exit(1);
}
else{
System.err.println("We are connected on the FTP server and will execut comande FTP." );
}
}
catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mais maintenant mon probléme est que si je tente d'exécuter des commandes sur le serveur il me renvoi l'exception suivante :
java.lang.NullPointerException
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:471)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:534)
at org.apache.commons.net.ftp.FTP.cwd(FTP.java:758)
at org.apache.commons.net.ftp.FTPClient.changeWorkingDirectory(FTPClient.java:716)
at CommandeFTP.uploadFile(CommandeFTP.java:89)
at projetMain.main(projetMain.java:18)
voici le code qui renvoi l'erreur ici je veux charger des fichiers dans le serveur:
public void uploadFile(String server,String username,String password,String folder,String destinationFolder){
conn.connexionServeurFTP(server, username, password);
try {
System.out.print("Début chargement fic dans serveur" );
//ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.changeWorkingDirectory(folder);
File f=new File(folder);
FileInputStream in= new FileInputStream("test.txt" );
ftp.storeFile("test.txt",in);
System.out.print("Fin chargement fic dans serveur" );
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
si vous avez une idée veuillez m'aider svp
Marsh Posté le 19-02-2009 à 12:14:43
Citation : at org.apache.commons.net.ftp.FTPClient.changeWorkingDirectory(FTPClient.java:716) |
Code :
|
Ton parametre folder doit être null;
Marsh Posté le 19-02-2009 à 13:12:45
J'ai changer la méthode avec le code suivant et ça marche :
public static void getDataFile( String server,
String username,
String password,
String folder,
String destinationFolder){
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
ftp.connect( server );
ftp.login( username, password );
System.out.println("Connected to " +
server + "." );
System.out.print(ftp.getReplyString());
// List the files in the directory
System.out.println("le status est : "+ftp.getStatus());
ftp.changeWorkingDirectory( folder );
ftp.stor("test1.txt" );
}
catch( Exception e )
{
e.printStackTrace();
}
}
Mais si je veux uploader plusieurs fichiers dans le repertoire ça ne passe pas
Voici le code :
public static void getDataFile( String server,
String username,
String password,
String folder,
String destinationFolder){
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
ftp.connect( server );
ftp.login( username, password );
System.out.println("Connected to " +
server + "." );
System.out.print(ftp.getReplyString());
// List the files in the directory
System.out.println("le status est : "+ftp.getStatus());
ftp.changeWorkingDirectory( folder );
File file = new File( folder + File.separator +"test.txt" );
File file1 = new File( folder + File.separator +"connexion.txt" );
InputStream fis1 = new FileInputStream(file);
InputStream fis2 = new FileInputStream(file1);
ftp.storeFile(file.getName(), fis);
ftp.storeFile(file1.getName(), fis1);
fis.close();
fis1.close();
}
catch( Exception e )
{
e.printStackTrace();
}
}
Marsh Posté le 19-02-2009 à 13:34:05
C'est bon les gars ça marche j'avait fait une erreur lors de l'appel de la méthode je lui avais pas donné le bon chemin
merci tout le monde
Marsh Posté le 17-02-2009 à 12:25:18
Salut
Comment exécuter en java un ensemble de commande ftp ou dos
merci