Autore Topic: Scaricare file da server FTP  (Letto 2410 volte)

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Scaricare file da server FTP
« il: 02 Aprile 2012, 17:03:13 CEST »
0
Ciao ragazzi, sarà una cretinata, ma non riesco a scaricare un file dal server ftp.
ho scaricato le librerie da qui:
https://commons.apache.org/net/api-3.1/org/apache/commons/net/ftp/FTPClient.html

ed  ho scritto il seguente codice:
Codice (Java): [Seleziona]
FTPClient con = new FTPClient();
        try
        {
            con.connect("ftp.mioserver.it");
            if (con.login("username", "password"))
            {
                con.enterLocalPassiveMode(); // important!
                InputStream in = con.retrieveFileStream("/README.txt"); //
                InputStreamReader ins=new InputStreamReader(in);
                BufferedReader br= new BufferedReader(ins);
                StringBuilder sb= new StringBuilder();
                String linea=br.readLine();
                while(linea!=null){
                        sb.append(linea);
                        linea=br.readLine();
                }
                tv.setText(sb.toString());
            }
        }
        catch (Exception e)
        {
                e.printStackTrace();
                //tv.setText(e.toString());
       }


        try
        {
            con.logout();
            con.disconnect();
        }
        catch (IOException e)
        {
                e.printStackTrace();
                //tv.setText(e.toString());
        }

mi dà come errore:

Codice: [Seleziona]
04-02 14:58:40.097: W/System.err(592): java.net.ConnectException: failed to connect to /94.141.22.38 (port 30782): connect failed: ETIMEDOUT (Connection timed out)
04-02 14:58:40.127: W/System.err(592):         at libcore.io.IoBridge.connect(IoBridge.java:114)
04-02 14:58:40.127: W/System.err(592):         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-02 14:58:40.127: W/System.err(592):         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-02 14:58:40.137: W/System.err(592):         at java.net.Socket.connect(Socket.java:842)
04-02 14:58:40.137: W/System.err(592):         at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:762)
04-02 14:58:40.148: W/System.err(592):         at org.apache.commons.net.ftp.FTPClient._retrieveFileStream(FTPClient.java:1747)
04-02 14:58:40.148: W/System.err(592):         at org.apache.commons.net.ftp.FTPClient.retrieveFileStream(FTPClient.java:1739)
04-02 14:58:40.168: W/System.err(592):         at com.francisco.ftp.FtpActivity.onCreate(FtpActivity.java:33)

=( forse sbaglio nel path del file??? cosa devo inserire??? io ho messo il file proprio in nella radice del ftp...

Offline FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scaricare file da server FTP
« Risposta #1 il: 03 Aprile 2012, 08:56:06 CEST »
0
Ho risolto... a breve inserisco cosa c'era che non andava...

Offline Zappescu

  • Utente junior
  • **
  • Post: 110
  • Respect: +7
    • Mostra profilo
    • Tic Tank Toe
  • Dispositivo Android:
    HTC Magic
  • Play Store ID:
    Zapmobilegames
  • Sistema operativo:
    Win XP
Re:Scaricare file da server FTP
« Risposta #2 il: 03 Aprile 2012, 09:10:58 CEST »
0
Ciao Ferox,
io ho usato ftp4j-1.7.jar per l'ftp. Funziona come FTPClient, ma ha in più la possibilità di prendere le dimensioni del file da scaricare. In questo modo sono riuscito a mettere una progress bar che avanza con il download dei pacchetti.

Non so se ti poteva servire...  FTPClient mi pare non lo faccia, o non lo fa chiaramente.
Zapmobilegames website
Tic Tank Toe: a new approach for a classic game

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Scaricare file da server FTP
« Risposta #3 il: 03 Aprile 2012, 09:51:02 CEST »
0
Ciao Ferox,
cosa è che non ti andava?
P.S: al termine di un trasferimento in upload o download da un file ftp devi sempre ricordarti di effettuare il completePendingCommand().
Serve per completare i trasferimenti, è scritto esplicitamente nelle API di org.apache.net.ftp.FTPClient
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 FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scaricare file da server FTP
« Risposta #4 il: 03 Aprile 2012, 23:21:24 CEST »
0
Il problema era proprio il completePendingCommand().
Per il resto, funziona tutto...
Ora devo gestire un pò tutti i tipi di eccezioni che può sollevare.
Sapete per caso come si gestisce il timeout? Come faccio a simulare un timeout?
Grazie ragazzi per le informazioni ;)

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Scaricare file da server FTP
« Risposta #5 il: 04 Aprile 2012, 10:58:46 CEST »
0
Per simulare il timeout del server Ftp, devi proprio impostare il timeout al server ftp. Non vedo alternative. Ci sono metodi di FTPClient tipo setSoTimeout etc, ma sembra che a me non funzionassero
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 FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scaricare file da server FTP
« Risposta #6 il: 04 Aprile 2012, 14:10:44 CEST »
0
Grazie mille... un'ultima cosa...
Ho provato a collegarmi al mio FTP con l'applicazione tramite la rete della mia università, che è wifi ma bisogna anche collegare una connessione VPN.
Riesco a entrare nel ftp ma non a scaricare.... non ho capito il perche =(
Come se ci fosse un blocco o altro... sapresti dirmi qualcosa???

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Scaricare file da server FTP
« Risposta #7 il: 04 Aprile 2012, 20:40:26 CEST »
0
Boh, mi verrebbe da chiederti: li hai i permessi per fare il download con il tuo account sul 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 FeRoX

  • Utente junior
  • **
  • Post: 67
  • Respect: +2
    • Mostra profilo
Re:Scaricare file da server FTP
« Risposta #8 il: 04 Aprile 2012, 23:18:51 CEST »
0
Allora da casa mia, non ci sono problemi, riesco a fare tutto.
All'università invece non mi permette di fare il login =(
Si blocca proprio in quella fase. Questo se uso l'applicazione da cellulare o emulatore.
Se invece mi collego con un client FTP  di windows (sempre collegato alla rete dell'università) va tutto.
Devo indagare meglio.... non so da cosa dipenda.

Offline AlessioElia

  • Nuovo arrivato
  • *
  • Post: 29
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:Scaricare file da server FTP
« Risposta #9 il: 07 Aprile 2012, 22:53:22 CEST »
0
Scusate ragazzi ho seguito il codice al primo post di Ferox, ho scaricato librerie e tutto.
Ma mi lancia eccezione quando tento di fare il connect dell'oggetto FTPClient. Ho provato a connettermi a ftp.mozilla.org perchè non so dove posso collegarmi per fare una prova.
Ora mi chiedo è l'host ftp che da problemi (e in tal caso potreste indicarmene uno a cui posso connettermi per fare solo una prova?), oppure devo configurare l'emulatore???
Vi ringrazio,
Alessio.

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:Scaricare file da server FTP
« Risposta #10 il: 12 Aprile 2012, 22:59:31 CEST »
0
Scusate ragazzi ho seguito il codice al primo post di Ferox, ho scaricato librerie e tutto.
Ma mi lancia eccezione quando tento di fare il connect dell'oggetto FTPClient. Ho provato a connettermi a ftp.mozilla.org perchè non so dove posso collegarmi per fare una prova.
Ora mi chiedo è l'host ftp che da problemi (e in tal caso potreste indicarmene uno a cui posso connettermi per fare solo una prova?), oppure devo configurare l'emulatore???
Vi ringrazio,
Alessio.
Ciao Alessio,
scusa il ritardo, hai già risolto? Io ti consiglio di fare delle prove con qualche server FTP in locale, magari gratuito. Potresti provare con filezilla Server se è gratis.
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:Scaricare file da server FTP
« Risposta #11 il: 12 Aprile 2012, 23:00:55 CEST »
0
Allora da casa mia, non ci sono problemi, riesco a fare tutto.
All'università invece non mi permette di fare il login =(
Si blocca proprio in quella fase. Questo se uso l'applicazione da cellulare o emulatore.
Se invece mi collego con un client FTP  di windows (sempre collegato alla rete dell'università) va tutto.
Devo indagare meglio.... non so da cosa dipenda.
Ciao Ferox,
Hai ancora problemi collegandoti all'università?
Potrebbe non essere questo il problema, però magari la classica porta 21 è dietro firewall della tua università.
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:Scaricare file da server FTP
« Risposta #12 il: 13 Aprile 2012, 01:53:00 CEST »
0
Ragazzi il problema è proprio il firewall.. Se c'è router o firewall fisico bisogna sbloccare la porta su cui si comunica col server ftp (tipicamente la 21). Altrimenti bisogna cambiare le impostazioni del firewall software che si ha installato sul pc. ;)