Bajar archivos desde un FTP

453 views
Skip to first unread message

Roxana

unread,
Jan 15, 2020, 11:34:20 AM1/15/20
to Comunidad de Visual Foxpro en Español
Hola Amigos! Los molesto porque estoy teniendo problemas al intentar bajar un archivo de un ftp con codigo de FOX.

Se conecta sin problema al servidor de ftp pero no baja el archivo y me da el error ftp error 200 type is now 8-bit binary.
Trate de subir un archivo y crea el archivo pero sin contenido. Con 0 byte. y Da el mismo error.

f2= sz_ftp.GetFtpFile('rox.zip', "c:\rox2.zip", .f.)

Alguna ayuda por favor??


Muchas Gracias!
 



Jose María Martín

unread,
Jan 15, 2020, 1:18:24 PM1/15/20
to Comunidad de Visual Foxpro en Español
Hola, se me ocurren varias cosas:

- Antes de intentar bajar un archivo desde mi código de vfp yo intentaría primero bajar un fichero con un cliente ftp para ver que no es problema del la configuración del servidor o de permisos de tu usuario del ftp.

- Si puedes bajarlos correctamente pienso, el error ese que comentas pienso que no es en realidad un error sino parte del log de conexión al servidor, si puedes acceder a dicho log en tu conexión ahí te dirá exactamente que esta causando el problema al momento de bajarte un fichero

- Quizas tu servidor ftp necesita activar el modo pasivo o activo. 


Un saludo

Roxana

unread,
Jan 15, 2020, 1:58:30 PM1/15/20
to Comunidad de Visual Foxpro en Español
Hola! Gracias por contestar!
Hice pruebas de conexion con un cliente FTP y funciona perfecto. Me conecto y subo y bajo archivos.
De hecho por codigo FPT, logro crear una directorio en el ftp, con lo cual la conexion anda pero no consigo ni subir ni bajar un archivo por codigo.

En donde estaria en el server ese log que me decis?? Carpeta raiz o alguna otro lado de confirguracion?

Por otro lado, intente setear el modo activo y me dio error.

Les paso mas detalle del codigo:

*** Esto da error - nFlags no existe??
sz_ftp.nFlags=BITXOR(sz_ftp.nFlags,.t. ) && Set Active Mode
IF sz_ftp.OpenInternet(FTPUser, FTPPass, FTPServer, FTPPort) THEN

  WAIT windows "Entro al ftp"
  
  
IF !sz_ftp.CreateFtpDirectory('Dir_Test')
?sz_ftp.GetErrorCode(.T.)
ENDIF
  *** Crea esta carpera sin problemas
  
f1= sz_ftp.PutFtpFile("prueba.txt", "c:\auxi\pruebaRox.txt")
 
IF f1 = .t.
 
WAIT windows "Subio bien"
    ELSE
      WAIT windows "No subio"
     a=  sz_ftp.GetErrorCode ( .t.)
       sz_ftp.GetExtendedErrorMsg()
     WAIT windows a
    ENDIF
    
*sz_ftp.GetFtpFile('vendedores/rox.zip', "rox.zip")
f2= sz_ftp.GetFtpFile('rox.zip', "c:\rox2.zip", .f.)
 
IF f2 = .t.
 
WAIT windows "Bajo el archivo"
    ELSE
    
      MESSAGEBOX("El Archivo No se pudo bajar.", 64, "Error Bajar el Archivo")
      a=  sz_ftp.GetErrorCode ( .t.)
       sz_ftp.GetExtendedErrorMsg()
     WAIT windows a
     

    sz_ftp.CloseInternet()
RELEASE sz_ftp
endif
********************************************************

Gracias!

Roxana

unread,
Jan 15, 2020, 6:50:08 PM1/15/20
to Comunidad de Visual Foxpro en Español
Hola Amigos!
Segui avanzando con las pruebas y ahora me da el error:

error 200 type set to A

Probe lo de Pasivo y Activo:

INTERNET_CONNECT_FLAG_PASSIVE= 1

Y obtuve el mismo error.

Logro que se conecte y cree una carpeta en el FTP pero no puedo subir ni bajar archivos.

Probé un montón de ejemplos que saque de internet y todos con el mismo resultado.

Por favor necesito una ayudita... Gracias!!

Saludos,

Roxana

Jose María Martín

unread,
Jan 16, 2020, 3:37:19 AM1/16/20
to Comunidad de Visual Foxpro en Español
Igual es por el modo de fichero que intentas bajar/subir, en un ftp le tienes que indicar si es binario(cualquier cosa que no sea texto plano) o ascii (texto). Esto lo haces con los comandos ascii or binary.

Un saludo.


El miércoles, 15 de enero de 2020, 17:34:20 (UTC+1), Roxana escribió:

Jose María Martín

unread,
Jan 16, 2020, 6:49:25 AM1/16/20
to Comunidad de Visual Foxpro en Español


El miércoles, 15 de enero de 2020, 17:34:20 (UTC+1), Roxana escribió:

Jose María Martín

unread,
Jan 16, 2020, 6:53:49 AM1/16/20
to Comunidad de Visual Foxpro en Español
Y dentro del anterior link de sweetpotatoes tienes una actualización de la libreria y de los ejemplos: 



El miércoles, 15 de enero de 2020, 17:34:20 (UTC+1), Roxana escribió:

Roxana Demattei

unread,
Jan 16, 2020, 10:10:58 AM1/16/20
to publice...@googlegroups.com

Gracias por contestar.

Probé con esta librería y también tengo problemas. Me da un error aunque no me dice cual.

Alguien me puede pasar un ejemplo más depurado??

Algo debo estar haciendo mal porque ya me llevo demasiado tiempo esto.

 

Muchas gracias!

 

Saludos,

 

Ing. Roxana Demattei

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/fEPIBvxiP5M/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/a28c80cc-d433-45c0-b19d-053f9a883c01%40googlegroups.com.

Jose María Martín

unread,
Jan 16, 2020, 10:20:58 AM1/16/20
to Comunidad de Visual Foxpro en Español
Si con todo lo que has probado te da error me da que el error no está en tu código sino en algún tipo de configuración. Firewall, o algo. Hay algún detalle que no has contado que te hace que no te funcionen. Los ejemplos de la librería que te pasé deberían si o si funcionarte.

Lo siento pero no se me ocurre nada más.



El miércoles, 15 de enero de 2020, 17:34:20 (UTC+1), Roxana escribió:

Roxana Demattei

unread,
Jan 16, 2020, 10:39:59 AM1/16/20
to publice...@googlegroups.com
Y la librería vfpconnection.dll no tiene alguna forma de devolución de errores? Hasta donde vi solo devuelve verdades o falso. Si me diera un detalle del error me ayudaría a saber dónde está el problema.

Igual, muchas gracias!

Saludos,

Roxana

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/fEPIBvxiP5M/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Jose María Martín

unread,
Jan 16, 2020, 12:57:40 PM1/16/20
to Comunidad de Visual Foxpro en Español
Puedes verlo con la funcion GetLastError

Prueba esto: 

DECLARE INTEGER GetLastError IN kernel32.DLL
DECLARE INTEGER FormatMessage IN kernel32.DLL

#DEFINE FORMAT_MESSAGE_FROM_SYSTEM 0x00001000
#DEFINE CR CHR(13)

STRING @lpBuffer


Cuando te devuelva False llámala:

lnError = GetLastError()
=FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ;
'WINERROR.H', lnError, 0, @lpBuffer, 128 , 0)

=MESSAGEBOX("System error has occurred." + CR + ;
"System Error code: " + ALLTRIM(STR(lnError)) + CR + ;
"System Error message: "+ALLT(lpBuffer),48,"ERROR")

Extraido de aqui (que no tiene que ver con ftp pero utiliza GetLastError): https://www.lawebdelprogramador.com/foros/FoxPro-Visual-FoxPro/732414-barra-de-tareas-window.html

A ver si te da información.


El miércoles, 15 de enero de 2020, 17:34:20 (UTC+1), Roxana escribió:

Víctor Hugo Espínola Domínguez

unread,
Jan 16, 2020, 2:11:18 PM1/16/20
to publice...@googlegroups.com

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/7c7d3639-265f-4357-8422-542a3215f4eb%40googlegroups.com.

Roxana Demattei

unread,
Jan 16, 2020, 2:16:20 PM1/16/20
to publice...@googlegroups.com

Maria Martin,

 

Al final era un problema del Firewall de Windows.

Pero lo más loco es que lo inactive para probarlo. Y Funciono!!!

Luego lo volví a activar y pensaba que iba a tener que dar permisos a algo puntual para que funcione el ftp get con el Firewall activo… pero para mi sorpresa ahora anda con el Firewall activo.

 

En conclusión de arreglo por activar y desactivar el Firewall de mi computadora!!

 

Gracias por su ayuda!!

 

Saludos,

 

Ing. Roxana Demattei

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Jose María Martín
Enviado el: jueves, 16 de enero de 2020 14:58
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: Bajar archivos desde un FTP

 

Puedes verlo con la funcion GetLastError

--

Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/fEPIBvxiP5M/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/990c010f-629c-4255-bd1a-bd3251857fe0%40googlegroups.com.

Roxana Demattei

unread,
Jan 16, 2020, 2:41:16 PM1/16/20
to publice...@googlegroups.com

Correxion.

Hay que activar algo puntual en el firewall (con Windows 10).

Si saben que es…

Por el momento sigo investigando y les cuento.

 

Saludos,

 

Ing. Roxana Demattei

Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/fEPIBvxiP5M/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CABoLD3F2qqEMkGAMp9wu%3DbwveVRMG77aT1g%2BhqazVa%3D8B2F6dQ%40mail.gmail.com.

Roxana

unread,
Jan 17, 2020, 7:40:08 AM1/17/20
to Comunidad de Visual Foxpro en Español
Hola amigos!
Al final como les comente era un problema del Firewall.

Hay que ir Panel de Control

Firewall

Ir a la opción de activar aplicaciones:

Y darle todos los permisos al VFP y luego a la aplicacion final compilada que estamos haciendo.

Adjunto un word con las instrucciones.

Muchas gracias por todo.


Saludos,


Roxana

Habilitar FireWall para FTP desde VFP.docx

Edwin Duran

unread,
Jan 17, 2020, 8:53:04 AM1/17/20
to Comunidad de Visual Foxpro en Español
Gracias

Jose María Martín

unread,
Jan 17, 2020, 10:23:05 AM1/17/20
to Comunidad de Visual Foxpro en Español
Me alegro que lo solucionaras. 

Gracias por compartir la configuración del firewall, si pudieras poner también al final el código que usas sería estupendo. Así el próximo con un problema con ftp parecido podría probar seguro de que funciona. 

Un saludo. 


El miércoles, 15 de enero de 2020, 17:34:20 (UTC+1), Roxana escribió:

Roxana Demattei

unread,
Jan 17, 2020, 10:30:06 AM1/17/20
to publice...@googlegroups.com

La  verdad el código es muy simple. Me hizo perder mucho tiempo lo del FireWall:

 

Adjunto código para subir un archivo al FTP:

 

IF sz_ftp.OpenInternet(FTPUser, FTPPass, FTPServer, FTPPort) THEN

           

*** Aca es el path del archivo que quiero subir

            PathBajada = ALLTRIM(PathAct) + "\Backup\data.zip"

           

       f2= sz_ftp.PutFtpFile('data.zip', PathBajada )

      IF f2 = .t.

        *** Todo OK

       ELSE

           a=  sz_ftp.GetErrorCode ( .t.)

          

            MESSAGEBOX("El Archivo No se pudo Subir. Consulte con el Administrador." , 64, "Error Bajar el Archivo")

     

                  sz_ftp.CloseInternet()

           

                 

            RELEASE sz_ftp

           

     

     

            RETURN

    ENDIF

Endif

           

Saludos,

 

Ing. Roxana Demattei

--

Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/fEPIBvxiP5M/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

Luis suescún

unread,
Jan 17, 2020, 2:06:41 PM1/17/20
to publice...@googlegroups.com
Que bueno que solucionaste y que bueno que compartes la.solución 

Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/005d01d5cd4a%24942ba560%24bc82f020%24%40gmail.com.
Message has been deleted

Esteban H

unread,
Jan 18, 2020, 10:00:10 AM1/18/20
to publice...@googlegroups.com

Hola Roxana.

Antes utilizaba el VFPconnection p trabajar con FTP.

Hoy todas las actualizaciones q realizo y trabajos con FTP los hago con Chilkat, q permite el manejo de FTP seguro (SFTP).

 

Saludos

Esteban

Reply all
Reply to author
Forward
0 new messages