Bonjour,

Je travaille actuellement sur une application Android. Cette application regroupera des annonces, elle récupère donc des informations depuis une BDD Oracle. Elle doit aussi afficher les photos en relations avec les annonces, c'est là où j'ai besoin de vous.
Récupérant toutes les infos d'abord d'un autre site depuis un serveur FTP, je me suis dit qu'il était surement plus logique de me servir directement des images du serveur FTP et non pas celles téléchargées sur le serveur de mon entreprise.
J'ai donc essayé de récupérer une photo avec "FTPClient" et "retrieveFileStream", cependant, je n'ai pas encore réussi à afficher l'image récupérée dans mon ImageView.
Je ne sais pas si c'est l'image qui n'est jamais récupérée, ou la transformation de l'InputStream vers une Bitmap (avec BitmapFactory.decodeStream(input)).

Voici le message que j'ai en tout cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.BufferedReader.readLine()' on a null object reference
Cette erreur survient sur cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ftpClient.completePendingCommand();

Voici ma fonction principale (celle qui doit récupérer le fichier sur le serveur FTP et me rendre un InputStream :
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
 
public InputStream LoadImageFromWebOperations(final String url) {
 
        final Context context = getActivity();
 
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                FTPClient ftpClient = new FTPClient();
                XmlPullParser xpp = null;
                try {
                    xpp = XmlPullParserFactory.newInstance().newPullParser();
                    ftpClient.connect("ftp.xxx.com");
 
                    ftpClient.login("login", "password");
                    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                    ftpClient.enterLocalPassiveMode();
                    inStream = ftpClient.retrieveFileStream(url);
                    xpp.setInput(inStream, "UTF-8");
                    ftpClient.disconnect();
                    ftpClient.completePendingCommand();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        thread.start();
 
        while (thread.isAlive()){
 
        }
 
        return inStream;
 }
Je me suis inspirée de chose que j'ai trouvée sur internet pour ce code et de mon propre "FTPDownloader" Java qui permettait de récupérer tout sur une machine.

Merci !