Autore Topic: Info Ftpclient: solo per spostare files?  (Letto 1197 volte)

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Info Ftpclient: solo per spostare files?
« il: 31 Dicembre 2012, 14:26:45 »
Guardando in rete ci sono alcuni esempi su "FtpClient" per leggere/scrivere dei files.
Prendendo come riferimento alcuni client ftp (tipo WSFTP), appena mi collego mi vengono visualizzate le varie directory e i files contenuti.
E'già prevista una cosa simile con Gambas, oppure io devo conoscere A PRIORI la struttura delle directory del server FTP per leggere/scrivere i files?
Grazie.

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #1 il: 04 Gennaio 2013, 21:17:07 »
E'già prevista una cosa simile con Gambas, oppure io devo conoscere A PRIORI la struttura delle directory del server FTP per leggere/scrivere i files?
Grazie.

Devi mandare il comando appropriato secondo il protocollo ftp (mi pare sia LIST, nel caso), e elaborare la risposta, per leggere i file e le cartelle. Ovviamente, prima dovrai effettuare il login, che a seconda del caso puo' essere anonimo o con pw.

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #2 il: 05 Gennaio 2013, 13:26:52 »
Intendo dire, c'è un FtpClient.Get (non ricordo di preciso la sintassi, scrivo a caso) per scaricare un file e FtpClient.Put per trasmetterlo, ma mi sembra che una cosa del tipo FtpClient.List o FtpClient.Cwd non ci siano.
E'prevista la loro implementazione in futuro o posso solo andare ad analizzare il traffico con un TcpClient?

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #3 il: 05 Gennaio 2013, 16:26:50 »
Intendo dire, c'è un FtpClient.Get (non ricordo di preciso la sintassi, scrivo a caso) per scaricare un file e FtpClient.Put per trasmetterlo, ma mi sembra che una cosa del tipo FtpClient.List o FtpClient.Cwd non ci siano.
E'prevista la loro implementazione in futuro o posso solo andare ad analizzare il traffico con un TcpClient?

Per quello che dicevo in quel modo: e neanche so se prima o poi sara' integrato con tutto il set dei comandi, non ricordo di avere mai letto nulla a proposito.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #4 il: 05 Gennaio 2013, 17:58:04 »
hai provato con 


ftp.exec(["comando1","comando2",ecc])

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #5 il: 06 Gennaio 2013, 15:39:46 »
In Gambas 2 non ce l'ho, vedo se riesco a installare il 3 e poi provo.

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #6 il: 15 Gennaio 2013, 20:17:03 »
Come si usa???
Io ho provato a mettere FtpClient1.User, password, etc, etc...
Poi vado a fare FtpClient1.Exec con la stringa PWD, ma non vedo muoversi nulla con lo sniffer di rete.....

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #7 il: 15 Gennaio 2013, 22:31:46 »
Codice: [Seleziona]
Private pass As String = "asdasd"
Private utente As String = "asdas"
Private url As String = "ftp.nomesito/public_html/"
Private myftp As New FtpClient As "myftp"

Public Sub _new()

End

Public Sub Form_Open()

End

Public Sub Button1_Click()
 
  myftp.URL = url
  myftp.User = utente
 
  myftp.Password = pass
  myftp.Timeout = 20
  Print myftp.Status
  myftp.Begin()
 myftp.Get()
 
  Print myftp.Status
End
Public Sub myftp_Read()
  Dim sbuf As String
 
  If Lof(myftp) Then
      Read #myftp, sbuf, Lof(myftp)
  Endif
 
  textarea1.text &= sbuf
  Print "pippo"
End
Public Sub myftp_Connect()
 
  Print "connesso"
 
End
Public Sub myftp_Finished()
 
  Print "finito"
 
End
Public Sub myftp_Error()
 
  Print myftp.ErrorText, "errore"
 
End


nella text area ottieni la lista dei file/cartelle mi pare

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Info Ftpclient: solo per spostare files?
« Risposta #8 il: 18 Gennaio 2013, 11:07:56 »
Ok, per ricevere qualcosa dal server FTP ci sono, ho aggiunto il codice

Codice: [Seleziona]
Public Sub MyFtp_Read()
    Dim sbuf As String

    While (Lof(MyFtp) > 0)
       Read #MyFtp, sbuf, 1
       TextArea1.Text &= sbuf
    Wend

End

Ora però non riesco a capire come trasmettere: se faccio

Codice: [Seleziona]
Public Sub Button2_Click()
  Dim msg As String = "CWD incoming" & gb.newline

    Write #MyFtp, msg, Len(msg)
End

non viene trasmesso niente....