Visual Basic Foro

Programación => Visual Basic .NET / C# => Mensaje iniciado por: javierjava en Agosto 20, 2014, 08:13:58 pm

Título: Enviar archivo por SFTP
Publicado por: javierjava en Agosto 20, 2014, 08:13:58 pm
Que tal tengo una duda sera posible subir archivos desde vb.net por medio de SFTP. estuve buscando en google y no encontré ningún ejemplo en planet sorce code encontré un ejemplo pero no funciona si alguien tiene información sobre el tema se lo agradecería.   
Título: Re:Enviar archivo por SFTP
Publicado por: Luffy en Agosto 21, 2014, 01:26:26 pm
Buen día, pues yo tengo este código que diseñamos en la empresa:

Código: (vb) [Seleccionar]

   Public Sub Archivar(ByVal OrigenArchivo As String, ByVal NombreArchivo As String, ByVal ExtensionArchivo As String, ByVal GuardarEnCarpeta As Carpetas)
        Dim Carpeta As String = String.Empty

        Select Case GuardarEnCarpeta
            Case Carpetas.FOTOSEMPLEADOS : Carpeta = "FotosEmpleados/"
        End Select


        Dim clsRequest As System.Net.FtpWebRequest
        'Dim ConexSockets As Net.Sockets.TcpClient
        clsRequest = DirectCast(System.Net.WebRequest.Create("ftp://direccion/" & Carpeta & NombreArchivo & ExtensionArchivo), System.Net.FtpWebRequest)
        clsRequest.Proxy = Nothing ' Esta asignación es importantisimo con los que trabajen en windows XP ya que por defecto esta propiedad esta para ser asignado a un servidor http lo cual ocacionaria un error si deseamos conectarnos con un FTP, en windows Vista y el Seven no tube este problema.
        clsRequest.Credentials = New System.Net.NetworkCredential("usuario", "contraseña") ' Usuario y password de acceso al server FTP, si no tubiese, dejar entre comillas, osea ""
        clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile

        Dim bFile() As Byte = System.IO.File.ReadAllBytes(OrigenArchivo)
        Dim clsStream As System.IO.Stream = _
        clsRequest.GetRequestStream()
        clsStream.Write(bFile, 0, bFile.Length)
        clsStream.Close()
        clsStream.Dispose()

    End Sub


Espero te sirva
Título: Re:Enviar archivo por SFTP
Publicado por: raul338 en Agosto 21, 2014, 01:30:35 pm
Puedes usar la libreria de WinSCP. Reinventarlo es muy tedioso x'D (ssh... SSL/TLS...  ::) ::))

WinSCP .NET Assembly and COM Library (http://winscp.net/eng/docs/library)
Título: Re:Enviar archivo por SFTP
Publicado por: javierjava en Agosto 26, 2014, 05:26:30 pm
Gracias por la ayuda pero no consigo utilizar el WinSCPnet.dll no me conecta con el servidor  :(
Título: Re:Enviar archivo por SFTP
Publicado por: raul338 en Agosto 26, 2014, 11:28:52 pm
Tenes que tener el WinSCP instalado. Proba desde ahi a ver si te conecta (tambien libera el firewall de windows si no lo hiciste)