Bonjour à tous,

J’essaie de m'amuser un peu. Je suis débutant en programmation et j'essaie de créer une application Android pour me permettre d'envoyer des photos de mon téléphone sur un serveur FTP.
Je sais que plusieurs appli existent sur le play store mais j'ai envie de la faire moi même :-)

Bon ça c'est pour la théorie parce qu'en pratique je suis bloqué.

L'appli contient un simple bouton qui demande à chercher un média dans la galerie Android.
Je galère pour envoyer cette image au serveur ftp.
Comment doit-on procéder ? Est-ce qu'on envoie l'image ? Est-ce qu'on envoie le chemin ? Je suis un peu perdu.

Voici mon code pour le moment :

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.evo.evoftpupload;
 
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileInputStream;
import android.net.Uri;
import org.apache.commons.net.ftp.FTPClient;
import android.provider.MediaStore;
import android.database.Cursor;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import android.os.Handler;
import android.os.AsyncTask;
import org.apache.commons.net.ftp.FTPReply;
import android.util.Log;
 
 
 
public class MainActivity extends AppCompatActivity
{
    protected static final int SELECT_PICTURE = 0;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button upload = findViewById(R.id.upload);
        upload.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                Intent myIntent = new Intent(Intent.ACTION_GET_CONTENT);
                myIntent.setType("image/*");
                startActivityForResult(Intent.createChooser(myIntent, "Upload"), SELECT_PICTURE);
            }
        });
    }
 
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK)
        {
            Uri img = data.getData();
            String imgPath = img.getPath();
            Toast.makeText(getApplicationContext(), "BRAVO!", Toast.LENGTH_SHORT).show();
            Toast.makeText(getApplicationContext(), imgPath, Toast.LENGTH_SHORT).show();
            new UploadFTP().execute(imgPath);
        }
    }
}
 
 
class UploadFTP extends AsyncTask <String, Void, String>
{
    public static FTPClient mFTPClient = null;
    @Override
    protected String doInBackground(String... params)
    {
 
        mFTPClient=new FTPClient();
        try
        {
            mFTPClient.connect("XXX.XXX.XX.XXX", 21);
            if (FTPReply.isPositiveCompletion(mFTPClient.getReplyCode()))
            {
                mFTPClient.login("XXXXXX", "XXXXXXXXXXXXXXX");
                mFTPClient.enterLocalPassiveMode();
                mFTPClient.setFileType(FTPClient.BINARY_FILE_TYPE);
                FileInputStream in= new FileInputStream(imgPath);
             // mFTPClient.changeWorkingDirectory("My Path of URL");
                mFTPClient.logout();
            }
        }
        catch (Exception e)
        {
 
        }
        return null;
    }
}
Mes ennuis démarrent avec la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
new UploadFTP().execute(imgPath);
Je ne suis même pas sur que c'est la bonne façon de procéder.
Est-ce qu'on peut envoyer une variable de cette manière ?
Et si oui comment la récupérer dans la class UploadFTP ?

Merci d'avance,

Evo