1

Bonjour,
Je suis en train de developper une application web qui consiste a faire l'upload de fichiers du poste client vers un serveur FTP independant du serveur web ou reside mon application web. Mon probleme est que je n'ai pas reussi a trouver une solution pour conncter mon serveur web au serveur FTP et y transferer les fichiers. J'utilise l'IDE Netbeans 5.0 avec serveur tomcat integere, on m'a proposé d'utiliser le package non standard "org.apache.commons.net" mais je n'ai pas encore su le maitriser.

2

Ca a l'air pourtant bien simple, y'a des exemples dans la java doc :
http://jakarta.apache.org/commons/net/api/org/apache/commons/net/ftp/FTPClient.html

qu'est-ce que t'arrive pas à faire ?

3

Ce que je n'ai pas réussit a faire exactement c'est le transfert d'un fichier vers un repertoire du serveur FTP.

4

Ca ne marche pas ou tu ne sais pas comment faire ?

5

C'est nouveau pour moi et la doc sur cette API n'est pas vraiment satisfaisante, je n'ai pas su comment faire, en fait j'ai pu realiser le transfert localement( cad au niveau du serveur web) en utilisant le package "com.oreilly.servlets" mais pour se connecter au serveur ftp et rediriger les fichiers ça reste un probleme.

6

ben pour la connection, c'est un exemple :
    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);
    }


en suite, pour copier dans un répertoire :
InputStream in = new FileInputStream("/dossier-local/fichier-local");
OutputStream out = ftp.storeFileStream("/dossier-remote/fichier-remote");
CopyUtils.copy(in, out);

avec CopyUtils de commons io : http://jakarta.apache.org/commons/io/api-release/index.html

Après, tu n'a peut-être pas bien précisé ce que tu voulais : qu'entends tu par "rediriger les fichiers" ?

7

Salut,
En réalite, j'ai un formulaire HTML où l'utilisateur a la possibilite d'envoyer plusieurs fichiers depuis son poste vers le serveur web.comme je t'ai dis, je n'ai pas trouvé de difficulté pour que les fichiers soient envoyés vers le serveur web en utilisant le package "com.oreilly.servlet" mais je voulais que les fichiers soient envoyés vers un serveur FTP, et puisque j'ai réussi a les recuperer sur le serveur web, je vais essayer de les transferer(rediriger) vers le serveur FTP c'est pourquoi que j'ai demandé de l'aide pour etablir la connexion vers ce serveur FTP et rediriger les fichiers du serveur web vers ce serveur et puis les eliminer du serveur web(ça ne sert a rien de les garder sur le serveur web) sachant que le serveur FTP est sous LINUX mandrake.