Visual Basic - Subir archivo a SFTP

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Subir archivo a SFTP

Publicado por Carlos (9 intervenciones) el 06/04/2016 16:35:47
Buen día,

Necesito subir un archivo .txt a un SFTP con una información que capto a través de un formulario.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Imports System.IO
Imports System.Text
Public Class Form1
    Dim ruta = My.Computer.FileSystem.SpecialDirectories.Desktop & "\CLIENTE.txt"
 
    Private Sub Label3_Click(sender As Object, e As EventArgs) Handles Label3.Click
 
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
    End Sub
 
    Private Sub addbutton_Click(sender As Object, e As EventArgs) Handles addbutton.Click
        ' Declarar una variable StringBuilder con una longitud adecuada
        Dim sb As New StringBuilder(String.Empty.PadLeft(416))
 
        ' Recuerda que los índices están en base cero, es decir
        ' la primera posición es el índice 0.
 
 
        sb.Insert(0, novedad.Text)
        sb.Insert(1, clientcode.Text)
        sb.Insert(26, identificationtype.Text)
        sb.Insert(28, identificationnumber.Text)
        sb.Insert(48, clientname.Text)
        sb.Insert(98, lastname.Text)
        sb.Insert(148, realcename.Text)
        sb.Insert(169, phone.Text)
        sb.Insert(184, mail.Text)
        sb.Insert(284, address.Text)
        sb.Insert(384, danecode.Text)
        sb.Insert(389, cardnumber.Text)
        sb.Insert(405, expiration.Text)
        sb.Insert(409, fromdate.Text)
        sb.Insert(411, cardtype.Text)
 
 
        Using sw As New StreamWriter(ruta, True)
            sw.WriteLine(sb.ToString())
        End Using
 
        Dim Texto As Object
        Texto = My.Computer.FileSystem.ReadAllText(String.Concat(ruta))
        readbox.Text = Texto
 
        MessageBox.Show("Registro Añadido")
 
    End Sub
 
    Private Sub clientname_TextChanged(sender As Object, e As EventArgs) Handles clientname.TextChanged
 
    End Sub
 
    Private Sub Label12_Click(sender As Object, e As EventArgs) Handles Label12.Click
 
    End Sub
 
    Private Sub mail_TextChanged(sender As Object, e As EventArgs) Handles mail.TextChanged
 
    End Sub
 
    Private Sub readbox_TextChanged(sender As Object, e As EventArgs) Handles readbox.TextChanged
 
    End Sub
 
    Private Sub clientload_btn_Click(sender As Object, e As EventArgs) Handles clientload_btn.Click
 
    End Sub
 
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Subir archivo a SFTP

Publicado por Andres Leonardo (1798 intervenciones) el 08/04/2016 16:14:47
Carlos

yo utilizo Putty con VB 6.0 para obtener y poner archivos ...

te sirve ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Subir archivo a SFTP

Publicado por Carlos (9 intervenciones) el 08/04/2016 16:31:15
¿Cómo haces la conexión?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Subir archivo a SFTP

Publicado por Andres Leonardo (1798 intervenciones) el 08/04/2016 16:53:33
Tengo putty que es un exe que puedes bajar de cualquier sitio

en vb6 creo un procedimiento cargar


1
2
3
4
5
6
7
8
'hago referencia la ejecutable, pongo la ip de server  usuario y clave asi como un archivo txt ... en este caso FILETXT
 
Sub cargaSftp()
    '
    lcomando = App.Path & "\Putty 192.168.60.10 -l Usuario -pw claveusuario -b " & App.Path & "\File.txt"
    Ejecuta_Comando_dos (lcomando)
 
End Sub


Ese Filetxt tiene los comandos que ejecuta una vez conectado

Contenido dle txt referencia do no se si sepas comandos sftp pero te trato de comentar los que uso igual hay muchos de esto.
este txt debe existir o estar creado.. yo lo creo en tiempo d eejecucion puesto que

1
2
3
4
cd reporte ' este es el el dato de la carpeta remota
lcd C:\reportes\txt\ ' dato de la capreta local
mget Reporte*.* ' que hago si obtengo 
mput *.* es       ' o si deseo poner 


este es el procedimeinto


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
 
 
Public Sub Ejecuta_Comando_dos(ByVal CmdLine As String)
    'Esperar a que un proceso termine,
    'la ventana se mostrará minimizada sin foco
    Dim hProcess As Long
    Dim RetVal As Long
    On Error GoTo tg_ERROR
 
 
    'The next line launches CmdLine as icon,
    'captures process ID
    'MsgBox CmdLine
 
    'hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
    '        Shell(CmdLine, vbMinimizedNoFocus))
 
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, _
            Shell(CmdLine, vbMinimizedNoFocus))
    Do
        'Get the status of the process
        GetExitCodeProcess hProcess, RetVal
        'Sleep command recommended as well
        'as DoEvents
        DoEvents
            Sleep 100
    'Loop while the process is active
    Loop While RetVal = STILL_ACTIVE
    Exit Sub
 
 
tg_ERROR:
    MsgBox Str$(Err.Number) & " - " & Err.Description
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 14 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Subir archivo a SFTP

Publicado por Alejandrok (4 intervenciones) el 13/01/2021 17:13:50
hola Andrés, tengo un subir y bajar archivos .CSV desde un server FileZilla (Host: sftp.fulljaus.com Port: 2222), he probado tu código, pero me está dando error, me podrías pasar el código completo, ya que con putty en la pantalla del cmd, tampoco se conecta.

putty sftp.fulljaus.com:2222 -l xxxusuario -pw xxxcontraseña

con este comando, me sigue pidiendo la contraseña.

Saludos y muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Subir archivo a SFTP

Publicado por Andres Leonardo (1798 intervenciones) el 13/01/2021 17:46:43
lo qeu psasa es que putty se conecta por defecto al puerto 22 que es el de sftp no he realizxado uno con puyerto personalizado.
intenta con el host asi

1
sftp.fulljaus.com:2222
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 14 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Subir archivo a SFTP

Publicado por Alejandrok (4 intervenciones) el 13/01/2021 18:18:35
Andrés, este es el comando que pongo desde la pantalla del cmd. para realizar una prueba.

1
putty sftp.fulljaus.com:2222 -l xxxusuario -pw xxxcontraseña -b c:\putty\comandos.txt

Donde comandos.txt (necesito subir el archivo novedades.csv que esta dentro de la carpeta c:\putty\novedades\) contiene lo siguiente:

1
2
3
cd novedades
lcd C:\putty\novedades\
mput novedades.csv

al ejecutarlo, me da el siguiente error:

unknown option -b

Saludos y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar