654380491
hola@carlosdk.com
Login
[miniorange_social_login]

Login with your site account

Lost your password?

Carlos DK Carlos DK
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
Back
  • Inicio
  • Kit digital
  • Universo Dk
  • Blog
  • Contacto
  • Home
  • Blog
  • Tutoriales formativos
  • Subir fichero por FTP con vb6 (visual basic 6)

Tutoriales formativos

16 Jun

Subir fichero por FTP con vb6 (visual basic 6)

  • By Carlos Dk
  • In Tutoriales formativos
  • 22 comments

Bienvenidos a VerTutoriales.com, en esta ocasión vamos a ver como subir un archivo local a un servidor remoto por FTP utilizando el componente INET de visual basic.

Actualmente estoy desarrollando una aplicación de gestión para cableoperadoras, esta aplicación contempla las necesidades básicas para mis clientes, pero seguimos ampliando módulos para dejar la aplicación cada vez más completa y que le solucione más problemas a los usuarios. Sino habéis visto el dossier que apuntaba en el enlace anterior, os resumo que lo que hace la aplicación es facturar a sus clientes, generando las facturas e imprimiendolas (por ahora). Quiero darle un valor añadido y pensando un poco en el ahorro de papel y tinta (que hay que cuidar nuestro entorno) vamos a generar las facturas en PDF (que ya está listo) y vamos a subirlas a un espacio FTP para que sus clientes puedan consultar la factura online, facilitando así la emisión de factura, ahorrando ese enorme gasto y ayudando al medio ambiente!

Para comenzar, hemos creado una función para facilitar la reutilización de la operación tantas veces queramos y que lleva en su interior la asignación de parámetros de configuración para la conexión con el servidor. Estos parámetros son 4.

Dim sIP As String   ‘IP del servidor
Dim sUsuarioFTP As String  ‘Nombre del usuario FTP
Dim sPassFTP As String  ‘Clave de acceso al ftp
Dim sHost As String  ‘nombre del host

Una vez tengamos esos parámetros veamos la función completa:

Function SubirFTP(sOrigen As String, sDestino As String)

Dim sIP As String
Dim sUsuarioFTP As String
Dim sPassFTP As String
Dim sHost As String

sIP = “ftp://109.205.137.230”
sUsuarioFTP = “codedk92”
sPassFTP = “123654!”
sHost = “codigo.dkreativo.es”

With InetFTP

‘Asigna la Url, es decir el nombre del Host FTP
.URL = sIP
.RemoteHost = sHost

.Protocol = icFTP

‘nombre de usuario y password de la cuanta FTP
.UserName = sUsuarioFTP
.Password = sPassFTP

‘Escribe el fichero en el servidor con el comando Put
.Execute .URL, “put ” + sOrigen + ” ” + sDestino

Do While .StillExecuting
DoEvents
Loop

UploadFile = (.ResponseCode = 0)
.Execute , “quit”

End With

End Function

Como podéis ver, la función recibe 2 parámetros, sOrigen debe de tener la dirección completa con el nombre de archivo que queremos subir, y en sDestino, la dirección completa con el nombre de archivo donde queremos ubicarlo.

Asignamos los parámetros de conexión y listo. Recordad añadir el complemento INET a vuestro proyecto y ponedle el nombre InetFTP para que lo reconozca.

Espero que os sirva, la función está probada y espero que en poco tiempo esté en producción, aunque antes hay que crear el acceso a los usuarios en la web del cliente para que puedan ver su factura, pero poco a poco.

Si tenéis cualquier sugerencia o duda, estoy a vuestra disposición!

Un saludo!

Tags:vb6visual basic 6
  • Share:
Carlos Dk

You may also like

Crear categorías y configurar menú en WordPress en 4 min.

  • marzo 3, 2019
  • by Carlos Dk
  • in Tutoriales formativos
Crear categoría y menú WordPress Es indispensable en una nueva instalación de WordPress, crear las...
Instalar tema en WordPress en 2 pasos
febrero 23, 2019
Actualizar MySQL 5.1 a 5.6 en CentOS 6.9 con Plesk como panel
octubre 20, 2018
Recorrer todos los objetos de una capa o del DOM completo con JQuery
diciembre 22, 2014

    Comments

  1. marco antonio
    enero 13, 2013

    Hola,

    Podrias por favor colocar un ejemplo sencillo del uso de la funcion? Estoy tratando de aplicarla, pero al correr el programa me sale un aviso indicando que debo colocar un signo de igual al colocar el nombre de la funcion con los parametros (origen y destino), estoy usando el evento click de un boton para llamar a la funcion y colocar un archivo en el FTP destino.

    Mil gracias, marco.

    Responder
    • VideoTutoriales
      enero 13, 2013

      Es por la forma de llamarla, si estás realizando la llamada a la función y en este caso no devuelve nada, en vb6 se llaman las funciones sin los paréntesis, en este caso sería:

      SubirFTP “c:/miarchivoasubir.txt”, “./miarchivoenserver.txt”

      Así debe de funcionarte sin pedirte el igual.

      La subida al FTP con vb6 es así de sencilla. Si aún así no te soluciona, pega el código que tienes a ver que puede ser.

      Responder
  2. Juian
    junio 14, 2013

    Oye donde me descargo el complemento INET para incluirlo al proyecto… No lo encuentro en las librerias por defecto que tiene el visual 6

    Responder
  3. Jimgod
    mayo 27, 2014

    Es muy Lento… tarda mucho y con un txt de 3KB

    Responder
    • videotutoriales
      mayo 28, 2014

      ¿Lo sube realmente? A mi me funciona sin problema y a una velocidad relativa a mi conexión.

      He llegado a subir cientos de megas para una aplicación que subía un comprimido y no ha dado problemas 😉

      Salud!

      Responder
      • Claudio
        enero 9, 2019

        Hola!, yo quiero obtener la fecha de un archivo en el FTP, alguien sabe como hacerlo ?
        GRacias

        Responder
        • Carlos Dk
          enero 9, 2019

          En realidad, una vez descargues el archivo, lo único que tienes que hacer es sacar las propiedades del archivo, para este caso, he encontrado este ejemplo en internet
          Dim fs, f, s
          Set fs = CreateObject(“Scripting.FileSystemObject”)
          Set f = fs.GetFile(filespec)
          s = UCase(filespec) & vbCrLf
          s = s & “Creado: ” & f.DateCreated & vbCrLf
          s = s & “Último acceso: ” & f.DateLastAccessed & vbCrLf
          s = s & “Última modificación: ” & f.DateLastModified
          MsgBox s, 0, “Información de acceso al archivo”

          Necesitas la librería FileSystemObject

          Espero que te sirva 😉

          Responder
  4. Joker Systems
    agosto 21, 2014

    olle pana de donde salen estos valores

    ‘Asigna la Url, es decir el nombre del
    .URL = sFTP

    .Protocol = icFTP no lo asignas valores a estas variables

    Responder
  5. videotutoriales
    agosto 24, 2014

    Ya lo he corregido 😉
    Supongo que al pasar el tutorial en vb6 puse otras variables para que se entendiera mejor:

    el sFTP es sIP.

    Con respecto a la icFTP es una constante que trae el objeto INET como podría ser otro:

    .AccessType = icDirect

    Un saludo!

    Responder
  6. Julián
    enero 22, 2016

    Muchas gracias por tu desinterés

    Responder
    • Carlos Dk
      febrero 3, 2016

      ¿?

      Responder
  7. daniel
    enero 24, 2016

    capo!!!

    Responder
  8. MIMI
    junio 22, 2016

    HOLA donde me descargo el complemento INET para incluirlo al proyecto… No lo encuentro en las librerias por defecto que tiene el visual 6

    Responder
  9. MIMI
    junio 22, 2016

    seleccionar desde la ficha componentes Microsoft Internet Transfer control
    ya lo vi! gracias de todas formas
    🙂

    Responder
    • Carlos Dk
      junio 23, 2016

      Tú preguntas, tú te respondes! Nada 😀

      Responder
  10. AjRoBSeYeR
    noviembre 15, 2016

    una preguntilla, hace la subida “bien”, es decir el fichero aparece en el servidor ftp, pero con 0Bytes… es algo que puedo estar haciendo mal?

    Responder
    • Carlos Dk
      noviembre 21, 2016

      Disculpa la tardanza en responder, parece ser que WordPress no quiere notificarme nuevos comentarios 🙂
      Con respecto a tu duda, revisa la configuración del FTP. es extraño que llegue a crearte el fichero pero se suba vacío. ¿Con qué configuración lo lanzas?

      Un saludo!

      Responder
      • Carlos Dk
        noviembre 21, 2016

        El mensaje “Daily user sending quota exceeded” dice “La cuota de envío de uso diario se excedió”, en otras palabras, “estás enviando más de lo que puedes”. No es problema ni de tu outlook ni de ninguna configuración de usuario, es del servidor que tiene una limitación de cuota de envío y ya la superaste en el día.

        Lo recomendable es que revises lo contratado y sino ves nada “raro” habla directamente con el administrador del servidor.

        Espero que te sirva! Un saludo!

        Responder
  11. PCALDERO
    mayo 10, 2018

    que pena, esto no funciona. empezando porque la instruccion
    UploadFile = (.ResponseCode = 0)
    referencia la variable UploadFile que no está definida por ningun lado.

    Responder
  12. Carlos Dk
    mayo 10, 2018

    Hace muchísimo que escribí esto, pero pondría la mano en el fuego de que funciona, de todas maneras si solo es declarar la variable, creo que no tendrás problema en hacerlo.

    Recuerda añadir INET al proyecto 😉

    Responder
  13. PCALDERO
    mayo 11, 2018

    Hola Carlos DK, tienes toda la razon. Declaré la variable y funcionó correctamente. Muchas gracias por tu aporte y tu comentario.

    Responder
    • Carlos Dk
      mayo 12, 2018

      Gracias a ti por el apunte… seguramente muchos no lleguen a leer hasta este comentario, en realidad el código no funciona si copias y pegas y no tienes un mínimo de intención o conocimiento de programar 😉

      Así que… lo dejaré así, que los neofitos aprendan 😉

      Responder

Leave A Reply Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Busca en la web

Recomiendo

Software ERP empresarial

Categorías

  • Miscelanea (129)
  • Tutoriales formativos (622)

Ponte en contacto

+34 654380491

hola@carlosdk.com

Torre del Mar (Málaga)

Enlaces rápidos

  • Universo Dk
  • Contacto
  • Blog

Soy social

  • Twitter
  • Linkedin
  • Youtube

Newsletters

Suscríbete para enterarte de lo último que estoy haciendo. No lo usaré para enviarte SPAM inútil 😉

Esta web la he diseñado con cariño en Andalucía por Carlos Dk