Bonjour à tous,

Je suis face à un problème très énigmatique..
En effet, j'essaye de faire la copie d'un fichier sur un serveur FTP de chez Free et il s'avère que la copie ne se fait pas complètement... pas faute de faire un flush à la fin!

Voici le code que j'utilise, qui fonctionne parfaitement pour une copie de local à local mais qui paraitrait fonctionner en distant :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
        FTPClient oClient;
        try {
            oClient = new FTPClient();
 
            oClient.connect("ftpperso.free.fr");
            oClient.login("nkapps", "/** mon mot de passe **/");
 
            System.out.println("Connected!");
 
            oClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            int reply = oClient.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                oClient.logout();
                oClient.disconnect();
 
                System.out.println("Disconnected!");
 
                throw new IOException("Le code '" + reply + "' a été renvoyé!");
            }
 
            System.out.println("Parametred!");
 
            int iBufferSize = 1024;
            String sName = "main.jpg";
            BufferedOutputStream oFTPOut = new BufferedOutputStream(oClient.storeFileStream("copie_" + sName), iBufferSize);
            BufferedInputStream oFileIN = new BufferedInputStream(new FileInputStream("C:/" + sName));
 
            final int total = oFileIN.available();
 
            Util.copyStream(
                    oFileIN,
                    oFTPOut,
                    iBufferSize,
                    org.apache.commons.net.io.CopyStreamEvent.UNKNOWN_STREAM_SIZE,
                    new org.apache.commons.net.io.CopyStreamAdapter() {
 
                        public void bytesTransferred(long totalBytesTransferred,
                                int bytesTransferred,
                                long streamSize) {
                            int percentComplete = (int) ((double) totalBytesTransferred / (double) total * 100);
                            System.out.println(percentComplete + " %");
                        }
                    });
 
            oFTPOut.flush();
            oFTPOut.close();
            oFileIN.close();
 
            System.out.println("Uploaded!");
 
            oClient.logout();
            oClient.disconnect();
 
            System.out.println("Disconnected!");
 
        } catch (IOException iOException) {
        }
Sortie de la console :
Connected!
Parametred!
19 %
39 %
59 %
79 %
99 %
100 %
Uploaded!
Disconnected!
Voici l'image d'origine :
http://nkapps.free.fr/main.jpg

Voici la copie :
http://nkapps.free.fr/copie_main.jpg

Je tourne en rond depuis hier midi la dessus...

Merci pour votre aide!