+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Upload di File via FTP in passive mode

  1. #1
    fox91 non è in linea Novello
    Luogo
    Busca (CN)
    Post
    21

    Upload di File via FTP in passive mode

    Ho un problema che spero di risolvere con l'upload di file.
    Il mio Programma realizzato in vb.net 2008 deve fare l'upload di un singolo file su più server utilizzando il protocollo FTP.
    Con molti server funziona senza dare errori mentre con altri mi da questo errore "Errore del server remoto: 227 Entering Passive Mode (85,10,128,229,188,174)". Mi è stato consigliato da alcune persone di utilizzare la modalità di invio in passive mode ma il problema è che non ci riesco. Non ho nemmeno trovato materiale che trattasse il problema su google!!
    Spero che voi mi possiate dare una mano. Grazie in anticipo.

  2. #2
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Luogo
    Prato
    Post
    2,602
    Prova su google con 'vb.net ftpclass'
    Saltano fuori ad esempio:

    To all who's doing FTP: Here's an FTP class to simplify things drastically - VBForums

    Chilkat .NET Ftp Class Reference (VB.NET)

    In entrambi ci sono riferimenti al modo passivo, che dovrebbe essere, se ben ricordo, un redirezionamento di porta deciso dal server host e a cui il client deve adeguarsi.

    Mi sembra ci sia già abbastanza, ma puoi cercare ancora anche variando un po' le parole chiave.

  3. #3
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Luogo
    Prato
    Post
    2,789
    Quote Originariamente inviato da fox91 Visualizza il messaggio
    Ho un problema che spero di risolvere con l'upload di file.
    Il mio Programma realizzato in vb.net 2008 deve fare l'upload di un singolo file su più server utilizzando il protocollo FTP.
    Con molti server funziona senza dare errori mentre con altri mi da questo errore "Errore del server remoto: 227 Entering Passive Mode (85,10,128,229,188,174)". Mi è stato consigliato da alcune persone di utilizzare la modalità di invio in passive mode ma il problema è che non ci riesco. Non ho nemmeno trovato materiale che trattasse il problema su google!!
    Spero che voi mi possiate dare una mano. Grazie in anticipo.
    dunque...scusa la mia curiosità...i server a cui fai riferimento li puoi
    gestire tu?sei l'amministratore dei server?qualche info più schiarisce
    i dubbi.

  4. #4
    fox91 non è in linea Novello
    Luogo
    Busca (CN)
    Post
    21

    Thumbs up

    Ho risolto tutto con il codice che posto qui di seguito.
    Ho scoperto che se mettevo il passive mode su on non funzionava più l'invio su nessun server e così invece di lasciarlo su default l'ho messo su off e funziona tutto.

    codice:
    Try
                        Dim ftpConn As FtpWebRequest = WebRequest.Create(Server)
                        ftpConn.UsePassive = False
                        ftpConn.Method = WebRequestMethods.Ftp.UploadFile
    
                        Dim sourceStream As StreamReader = New StreamReader(NomeFile)
                        Dim fileContents() As Byte = System.Text.Encoding.ASCII.GetBytes(sourceStream.ReadToEnd())
                        sourceStream.Close()
                        ftpConn.ContentLength = fileContents.Length
                        ftpConn.Credentials = New NetworkCredential(Username, Password)
                        Dim requestStream As Stream = ftpConn.GetRequestStream()
                        requestStream.Write(fileContents, 0, fileContents.Length)
                        requestStream.Close()
                        Dim response As FtpWebResponse = ftpConn.GetResponse()
                        'MsgBox("Upload status: " & response.StatusDescription)
                        Invia = True
                        response.Close()
                    Catch ex As Exception
                        MsgBox("Errore: (ID = " & ID + 1 & ")" & vbCrLf & "Server: " & Server & vbCrLf & "Username: " & Username & vbCrLf & "Password: " & Password & vbCrLf & vbCrLf & ex.Message)
                        Invia = False
                    End Try

  5. #5
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Luogo
    Prato
    Post
    2,602
    Ho risolto tutto con il codice che posto qui di seguito.
    Bravo fox, sempre condividere le soluzioni con la comunità!

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi