Autore Topic: [facile] Comunicare con un server ftp  (Letto 11612 volte)

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #15 il: 04 Dicembre 2011, 17:39:42 CET »
0
Questa è la classe ClientFTP
Codice (Java): [Seleziona]
public class ClientFTP implements Serializable {
       
        private static final long serialVersionUID = 1L;
        private FTPClient ftpClient = null;
        private final String APPNAME = "ClientFTP";
        private String host;
        private int port;
       
        public ClientFTP () {
                host = "";
                port = 0;
        }
       
        /** Metodo utilizzato per connettersi al Server FTP:
     * @param host Indirizzo del Server FTP
     * @param username Nome Utente per Autentificarsi
     * @param password Password utilizzata per Autentificarsi
     * @param port Porta di ascolto del Server FTP
     * @return true se la connessione ha avuto successo. False altrimenti
     */

     public boolean ftpConnect(String host, String username, String password, int port) {
         try {
                 ftpClient = new FTPClient();    // Creazione oggetto FTPClient
                 System.out.println("PRIMO");
                 this.host = host;
                 this.port = port;
             ftpClient.connect(host, port);  // Connessione all'host su un determinata porta
             System.out.println("SECONDO");
             /* Ora verifichiamo il codice di risposta; se positivo allora la connessione
                è stata stabilita con successo */

             if (FTPReply.isPositiveCompletion( ftpClient.getReplyCode() )) {
                 System.out.println("TERZO");
                 boolean status = ftpClient.login(username, password); // Autenticazione
                    /* Settare i file in Transfer Mode
                     * Per evitare il problema di corruzione, è necessario specificare una
                     * modalità di corretto funzionamento, ad esempio:
                     * ASCII_FILE_TYPE, BINARY_FILE_TYPE, EBCDIC_FILE_TYPE.
                     * Qui si è scelto di usare il BINARY_FILE_TYPE per trasferire
                     * text, image, and compressed files.
                     */

                    ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                    ftpClient.enterLocalPassiveMode(); //Abilita la modalità FTP passiva.
                    System.out.println("QUARTO");
                    return status;
                }
             System.out.println("QUINTO");
            } catch(SocketException e1) {
               Log.d(APPNAME, "Socket Exception con host: " + host );
               Log.d(APPNAME, "Porta numero: "+port);
               e1.printStackTrace();
            } catch(IOException e2) {
                Log.d(APPNAME, "IOException, connessione non riuscita con host: " + host);
                e2.printStackTrace();
            }

            return false;
     }  //Fine FTP connect

     
     /** Metodo usato per disconnettersi dal Server FTP:
      * @return True se l'esito della disconnessione è positivo. False altrimenti
      */

     public boolean ftpDisconnect() {
         try {
                 ftpClient.logout();
             ftpClient.disconnect();
             return true;
         } catch (Exception e) {
                 Log.d(APPNAME, "Errore durante la disconnessione dal Server FTP");
           }
         return false;
     }

     
     /** Metodo per ottenere l'indirizzo della corrente cartella di lavoro:
      * @return Una stringa contenente l'indirizzo della cartella di lavoro attuale. Se la
      * cartella non fosse disponibile il metodo ritorna null.
      */

     public String ftpGetCurrentWorkingDirectory() {
         try {
                 String workingDir = ftpClient.printWorkingDirectory();
                 return workingDir;    
         } catch(Exception e) {
                 Log.d(APPNAME, "Errore: non è possibile ottenere l'attuale cartella di lavoro.");
           }
         return null;
     }
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #16 il: 17 Gennaio 2012, 17:00:27 CET »
0
A qualcuno è mai capitato di effettuare due o più download in maniera parallela da un Server FTP?
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3459
  • Respect: +503
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Re:[facile] Comunicare con un server ftp
« Risposta #17 il: 17 Gennaio 2012, 19:07:20 CET »
0
A qualcuno è mai capitato di effettuare due o più download in maniera parallela da un Server FTP?

Non serve fare cross-posting, basta scrivere in un thread solo ;)

Offline ilGiudicatore

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg p500
  • Sistema operativo:
    windows Xp, eclipse
Re:[facile] Comunicare con un server ftp
« Risposta #18 il: 18 Gennaio 2012, 23:55:29 CET »
0
se il file fosse dentro alla memoria del cellulare cìè un modo per recuperarlo???

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #19 il: 15 Febbraio 2012, 12:34:56 CET »
0
se il file fosse dentro alla memoria del cellulare cìè un modo per recuperarlo???
Se il tuo file fosse all'interno della memoria interna del telefono devi utilizzare l'oggetto Environment ed utilizzare uno dei metodi che mette a disposizione che faccia al caso tuo.
Ad esempio
Codice (Java): [Seleziona]
File file1 = Environment.getRootDirectory();
File file2= Environment.getDataDirectory();
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #20 il: 09 Aprile 2012, 23:49:54 CEST »
0
Salve ragazzi io per effettuare delle prove ho scaricato FileZilla Server e l'ho installato sul mio pc. Ora se digito localhost:21 nel browser accedo in ftp al localhost una volta che faccio il login.
Invece se provo a farlo dalla mia app mi da Connection Refused quando l'oggetto FTPClient gli faccio fare oggetto.connect(indirizzo,21);
Vi allego lo snippet in questione:
Codice (Java): [Seleziona]
FTPClient con = new FTPClient();
InetAddress indirizzo = InetAddress.getByName("localhost");
           con.enterLocalPassiveMode();
                con.connect(indirizzo,21);

Saluti!

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #21 il: 10 Aprile 2012, 08:57:53 CEST »
0
Penso che sia proprio la stringa localhost che non funzioni.
Prova ad inserire il tuo vero indirizzo IP della macchina
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #22 il: 10 Aprile 2012, 11:01:53 CEST »
0
Si è proprio quello il problema.
Grazie.

Offline stballo

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
Re:[facile] Comunicare con un server ftp
« Risposta #23 il: 07 Maggio 2012, 07:24:26 CEST »
0
Ciao a tutti,
sono un novellino quindi portate pazienza..

ho scaricato il tutorial, l'ho importato in Eclipse...
Ho aggiunto la lib
faccio partire il Debug e mi da questo errore:

05-07 05:15:44.166: E/dalvikvm(194): Could not find class 'org.apache.commons.net.ftp.FTPClient', referenced from method it.dodopepper.tutorial.ftpclient.FtpClient.onCreate

tra l'altro ho lo stesso problema anche su un altro progetto che stoprovando a fare.. sembra che quando faccio riferimento a qualche classe che non sia la mia lui si arrabbi.. mi sapete dire come mai? la compilazione va a buon fine.. non dovrebbe darmi errore anche lì?

Ciao e grazie!!
S

[EDIT] sono riuscito.. avevo specificato male l'import del jar..
ora però ho un altro problema... premetto, se potesse esservi utile, che mi collego al mio ftp su aruba...
questo è il replyString:

This is a private system - No anonymous login

credo che a causa di questo non mi riesca a fare l'uplad del file (anche se il login ha esito positivo! :-( )
« Ultima modifica: 07 Maggio 2012, 15:55:24 CEST da stballo »

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:[facile] Comunicare con un server ftp
« Risposta #24 il: 12 Maggio 2012, 10:59:30 CEST »
0
ciao stballo ho il tuo stesso problema... come lo hai risolto??

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:[facile] Comunicare con un server ftp
« Risposta #25 il: 17 Maggio 2012, 18:21:39 CEST »
0
ciao, ho notato che in questo tutorial tu usi la storefile, per necessità di progetto io avrei bisogno di interrompere la storefile dopo tot tempo.
sai dirmi come potrei fare?

Offline Salvo_morph

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Spica
  • Sistema operativo:
    Mac OS X 10.7.4
Re:[facile] Comunicare con un server ftp
« Risposta #26 il: 19 Maggio 2012, 11:55:09 CEST »
0
Ragazzi, ho seguito attentamente la guida, ma riscontro un problema:


Ecco il Logcat
Codice: [Seleziona]
05-19 11:49:35.663: E/AndroidRuntime(27258): java.lang.NoClassDefFoundError: org.apache.commons.net.ftp.FTPClient
05-19 11:49:35.663: E/AndroidRuntime(27258):         at it.dodopepper.tutorial.ftpclient.FtpClient.onCreate(FtpClient.java:25)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.os.Handler.dispatchMessage(Handler.java:99)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.os.Looper.loop(Looper.java:123)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at android.app.ActivityThread.main(ActivityThread.java:4627)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at java.lang.reflect.Method.invokeNative(Native Method)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at java.lang.reflect.Method.invoke(Method.java:521)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-19 11:49:35.663: E/AndroidRuntime(27258):         at dalvik.system.NativeStart.main(Native Method)


[Aggiornamento] problema risolto. Dimenticavo che, con il nuovo aggiornamento, bisogna creare la cartella libs e mettere li il file .jar.
« Ultima modifica: 19 Maggio 2012, 15:10:18 CEST da Salvo_morph »

Offline First01

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:[facile] Comunicare con un server ftp
« Risposta #27 il: 06 Settembre 2013, 12:28:19 CEST »
0
salve, complimenti per il tutorial, ho un dubbio sull'inserimento dell'indirizzo del server ftp.
Nel codice del tutorial viene richiesto l'inserimento dell'indirizzo ma come faccio a trovare quello del mio server ftp ?
ho creato il server tramite filezilla..sapete spiegarmi come faccio a risalire all'indirizzo ?

Grazie mille.

Offline ginoilmattino

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    S3
  • Sistema operativo:
    Win 7
Re:[facile] Comunicare con un server ftp
« Risposta #28 il: 27 Giugno 2014, 14:03:35 CEST »
0
Salve,

mi va sempre in errore al "CONNECT" ho cambiato anche indirizzo etc. Quale può essere il problema?

Il log connect 3 non lo trovo tra i LOGCAT


Log.d("Ftp Download","connect1");
InetAddress indirizzo = InetAddress.getByName("66.71.190.56");
Log.d("Ftp Download","connect2");

client.connect(indirizzo);           
Log.d("Ftp Download","connect3");