IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[FTP] téléchargement d'un fichier


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 59
    Points : 53
    Points
    53
    Par défaut [FTP] téléchargement d'un fichier
    Bonjour,

    J'aimerais télécharger des images qui sont présentes sur un serveur FTP directement sur ma carte SD pour pouvoir les affichier dans une gallery.

    J'ai cherché un peu pour l'utilisation d'un client FTP et je tombe toujours sur l'utilisation de librairies externes.

    Est-ce possible de télécharger des images sur un serveur FTP plus facilement ou avec des outils mis directement à disposition sur android?

    Merci d'avance pour vos réponses

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 190
    Points : 114
    Points
    114
    Par défaut
    si tu connais l'url de ton fichier, tu peux utiliser une fonction comme celle ci non ?

    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
    public void getFile(URL u){
    	String FileName = u.getFile();
    	FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
    	//Open your local db as the input stream
    	URLConnection uc = u.openConnection();
    	String FileType = uc.getContentType();
    	int FileLenght = uc.getContentLength();
    	if (FileLenght == -1) {
    		throw new IOException("Fichier non valide.");
    	}
    	InputStream myInput = uc.getInputStream();
    	// Path to the just created empty db
    	String outFileName = "chemain de ta carte SD" + FileName;
    	//Open the empty db as the output stream
    	File out = new File(outFileName);
    	OutputStream myOutput = null;
    	try{
    		myOutput = new FileOutputStream(out);
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    	//transfer bytes from the inputfile to the outputfile
    	byte[] buffer = new byte[1024];
    	int length;
    	try{
    		while ((length = myInput.read(buffer))>0){
    			myOutput.write(buffer, 0, length);
    		}
    		//Close the streams 
    		myOutput.flush();
    		myOutput.close();
    		myInput.close();
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    }
    elle te permet de copier un fichier (de manière binaire) d'un serveur vers ta carte SD... après reste plus qu'à l'utiliser dans ton appli...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 59
    Points : 53
    Points
    53
    Par défaut
    ok merci,

    perso je suis parti sur andFTP qui laisse la possibilité d'utiliser une activité directement de leur programme pour exécuter des commandes ftp.
    Voici un exemple de code qui se trouve sur leur site:

    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
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_PICK);
    // FTP URL (Starts with ftp://, sftp:// or ftps:// followed by hostname and port).
    Uri ftpUri = Uri.parse("ftp://yourftpserver.com");
    intent.setDataAndType(ftpUri, "vnd.android.cursor.dir/lysesoft.andftp.uri");
    // FTP credentials (optional)
    intent.putExtra("ftp_username", "anonymous");
    intent.putExtra("ftp_password", "something@somewhere.com");
    //intent.putExtra("ftp_keyfile", "/sdcard/dsakey.txt");
    //intent.putExtra("ftp_keypass", "optionalkeypassword");
    // FTP settings (optional)
    intent.putExtra("ftp_pasv", "true");
    //intent.putExtra("ftp_resume", "true");
    //intent.putExtra("ftp_encoding", "UTF8");
    // Download
    intent.putExtra("command_type", "download");
    // Activity title
    intent.putExtra("progress_title", "Downloading files ...");
    // Close activity after transfer (optional) 
    // intent.putExtra("close_ui", "true"); 
    // Remote files to download.
    intent.putExtra("remote_file1", "/remotefolder/subfolder/file1.zip");
    intent.putExtra("remote_file2", "/remotefolder/subfolder/file2.zip");
    // Target local folder where files will be downloaded.
    intent.putExtra("local_folder", "/sdcard/localfolder"); 
    startActivityForResult(intent, 0);
     ...
     ...
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
       Log.i(TAG, "Result: "+resultCode+ " from request: "+requestCode);
       if (data != null)
       {
          Log.i(TAG, "Status: "+ data.getStringExtra("TRANSFERSTATUS"));
       }
    }

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Ghunter59 Voir le message
    si tu connais l'url de ton fichier, tu peux utiliser une fonction comme celle ci non ?

    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
    public void getFile(URL u){
    	String FileName = u.getFile();
    	FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
    	//Open your local db as the input stream
    	URLConnection uc = u.openConnection();
    	String FileType = uc.getContentType();
    	int FileLenght = uc.getContentLength();
    	if (FileLenght == -1) {
    		throw new IOException("Fichier non valide.");
    	}
    	InputStream myInput = uc.getInputStream();
    	// Path to the just created empty db
    	String outFileName = "chemain de ta carte SD" + FileName;
    	//Open the empty db as the output stream
    	File out = new File(outFileName);
    	OutputStream myOutput = null;
    	try{
    		myOutput = new FileOutputStream(out);
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    	//transfer bytes from the inputfile to the outputfile
    	byte[] buffer = new byte[1024];
    	int length;
    	try{
    		while ((length = myInput.read(buffer))>0){
    			myOutput.write(buffer, 0, length);
    		}
    		//Close the streams 
    		myOutput.flush();
    		myOutput.close();
    		myInput.close();
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    }
    elle te permet de copier un fichier (de manière binaire) d'un serveur vers ta carte SD... après reste plus qu'à l'utiliser dans ton appli...
    je sais que le sujet est vieux mais quand j'essai d'utiliser ton code il m'indique toujours que le fichier est non valide peut importe l'adresse que je met en url ? du moins une adresse sur un serveur ftp avec connexion ça marche pas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 21
    Points : 23
    Points
    23
    Par défaut problème resolu
    j'ai fini par réussir j'ai juste enlevé la parti du teste du fichier valide !

    mais si quelqu'un a une solution pour faire l'inverse envoyer un fichier en FTP ??

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/09/2013, 14h23
  2. Client FTP téléchargement de plusieurs fichiers
    Par el_coyote dans le forum Web & réseau
    Réponses: 0
    Dernier message: 18/09/2012, 22h43
  3. Téléchargement de plusieurs fichiers en FTP
    Par g.abdou dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 28/06/2010, 10h59
  4. Réponses: 2
    Dernier message: 31/12/2009, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo