Bonjour, j'étais venu ici il y a un moment pour un problème de chargement sur un serveur ftp d'un fichier binaire et grâce à certains d'entre vous j'avais pu finir mon application sans perdre tous mes cheveux ^^
Là j'ai un soucis "bizarre" j'ai changé de pc donc réinstaller éclipse et jdk (7u1) et ma fonction qui me permettait de créer un répertoire sur le serveur et de charger toutes les photos d'un répertoire local sur le répertoire créer du serveur ftp ne marche plus...
Je ne comprends vraiment pas. En fait elle crée bien le répertoire, elle va dedans mais dès que je veux écrire un fichier dedans (dès le premier tour de mon foreach) ça plante ...
Voici le message d'erreur :
là y a moins d'un tiers du message d'erreur...java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at org.apache.commons.net.ftp.FTP.__send(FTP.java:496)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:470)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:547)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:596)
at org.apache.commons.net.ftp.FTP.quit(FTP.java:804)
at org.apache.commons.net.ftp.FTPClient.logout(FTPClient.java:941)
Et voici mon code :
Ce qui fait planter c'est la ligne en rouge ... cette fonction fonctionne très bien chez la personne pour qui j'avais réalisé le programme qui l'utilisait ... là je fait un autre programme mais qui doit lui aussi utiliser cette fonction et pour une raison qui m'échappe complètement, elle ne marche plus... (je n'ai pas pu tester le code source de l'ancien programme parce que j'ai fait quelques boulettes il m'en manque la moitier )
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 public static boolean copieDePhotosFTP(File repertoire , String nomRep) { File[]listeFichier = repertoire.listFiles(); FTPClient con = getConnexionFTP(); try { if (con.changeWorkingDirectory("www/photos")) { con.mkd(FncControlesSaisies.nomPourFTP(nomRep)); if (con.changeWorkingDirectory(FncControlesSaisies.nomPourFTP(nomRep))) { System.out.println(con.printWorkingDirectory()); con.setFileType(FTP.BINARY_FILE_TYPE); try { for (File image : listeFichier) { if (!image.isDirectory()) { FileInputStream entre = new FileInputStream(image); if (FncImages.isFormatImage(image.getName())) con.storeFile(FncControlesSaisies.nomPourFTP(image.getName()), entre); entre.close(); } } con.logout(); return true; } catch (Exception e) { con.logout(); return false; } } else { con.logout(); return false; } } else { con.logout(); return false; } } catch (IOException e) { try { con.logout(); } catch (IOException e1) { e1.printStackTrace(); } return false; } }
Donc sur le serveur, le répertoire est créé, avec le bon nom, par contre à l'intérieur aucun fichier n'est créé le programme plante dès le premier tour de boucle... quelqu'un aurait une idée ?
Partager