Codigo para repaldar y restaurar datos a un sitio ftp en un

Codigo para repaldar y restaurar datos a un sitio ftp en un

Postby carlos vargas » Wed Aug 30, 2006 7:33 pm

Amigo quiero compartir este pedacito de codigo con ustedes, puede ser que a alguien le sea de utilidad :-).

Lo que hace es realizar una copia de respaldo comprimida de los datos de la app y poner dicho archivo en un ftp en internet.

luego hace el proceso inverso. baja el archivo de respaldo y lo descomprime al directorio de datos.

NOta: logicamente deberan poner:
su servidor ftp.
su usuario
su clave

ademas de que las funciones waiton y waitoff no estan incluidas :-(
pero son facilmente reemplazable :-)


salu2
carlos vargas
Code: Select all  Expand view

PROCEDURE GetFileInFtp()
   LOCAL oFpt

   oFTP := qFTPClient():New("209.190.5.162", 21, {|cM| Logfile("logftp.txt", {cM})},,"carlos@carlos.byethost6.com","carlos")
   oFTP:lPassive := .T.

   IF oFTP:Connect()
      MsgInfo("Conectado a " + CRLF + oFTP:oSocket:ClientIP() )
      WaitOn("Conectado, Recuperando datos")
      CursorWait()
      IF oFTP:Retr("/datos.zip","datos.zip")
         CursorArrow()
         WaitOff()
         IF FileSize("datos.zip") > 0
            IF UnZipDatos()
               MsgInfo("Archivo de datos restaurado correctamente!")
            ENDIF
         ELSE
            MsgAlert("Archivo de datos corrupto, no se pude continuar!")
         ENDIF
      ELSE
         CursorArrow()
         WaitOff()
         MsgAlert("Fallo recuperación de archivos de datos!")
      ENDIF
   ELSE
      MsgAlert("Fallo en conexión a servidor FTP!")
   ENDIF

   oFTP:Quit()
   oFTP:End()

RETURN

/*----------------------------------------------------------------------------------*/

PROCEDURE PutFileInFtp()
   LOCAL oFpt

   IF !ZipDatos()
      RETURN
   ENDIF

   oFTP := qFTPClient():New("209.190.5.162", 21, {|cM| Logfile("logftp.txt", {cM})},,"carlos@carlos.byethost6.com","carlos")
   oFTP:lPassive := .T.

   IF oFTP:Connect()
      MsgInfo("Conectado a " + CRLF + oFTP:oSocket:ClientIP() )
      WaitOn("Conectado, copiando datos.")
      CursorWait()
      IF oFTP:Stor("datos.zip", "/datos.zip")
         CursorArrow()
         WaitOff()
         MsgInfo("Archivo de datos almacenado con exito!")
      ELSE
         CursorArrow()
         WaitOff()
         MsgAlert("Fallo almacenamiento de archivos de datos!")
      ENDIF
   ELSE
      MsgAlert("Fallo en conexión a servidor FTP!")
   ENDIF
   oFTP:Quit()
   oFTP:End()

RETURN

/*----------------------------------------------------------------------------------*/

FUNCTION ZipDatos()
   LOCAL lOk:=FALSE
   LOCAL aFiles:={}

   AAdd(aFiles,".\datos\mcont.dbf")
   AAdd(aFiles,".\datos\mdesl.dbf")
   AAdd(aFiles,".\datos\mjard.dbf")
   AAdd(aFiles,".\datos\mlote.dbf")
   AAdd(aFiles,".\datos\mvend.dbf")
   AAdd(aFiles,".\datos\mcont.cdx")
   AAdd(aFiles,".\datos\mdesl.cdx")
   AAdd(aFiles,".\datos\mjard.cdx")
   AAdd(aFiles,".\datos\mlote.cdx")
   AAdd(aFiles,".\datos\mvend.cdx")
   AAdd(aFiles,".\datos\mcont.fpt")
   AAdd(aFiles,".\datos\mlote.fpt")
   AAdd(aFiles,".\datos\mvend.fpt")

   WaitOn("Comprimiendo datos.")
   CursorWait()
   IF HB_ZIPFILE("datos.zip",aFiles,9,NIL,TRUE,NIL,TRUE)
      CursorArrow()
      WaitOff()
      lOk:=TRUE
   ELSE
      CursorArrow()
      WaitOff()
      MsgStop("Error, no se pudo comprimir datos!")
   ENDIF

RETURN lOk

/*----------------------------------------------------------------------------------*/

FUNCTION UnZipDatos()
   LOCAL lOk:=FALSE
   LOCAL aFiles:=HB_GETFILESINZIP("datos.zip")

   WaitOn("Descomprimiendo datos.")
   CursorWait()
   IF Len(aFiles) > 0
      IF HB_UNZIPFILE("datos.zip",NIL,TRUE,NIL,".\",aFiles)
         CursorArrow()
         WaitOff()
         lOk:=TRUE
      ELSE
         CursorArrow()
         WaitOff()
         MsgAlert("Error, no se pudo descomprimir datos!")
      ENDIF
   ELSE
      CursorArrow()
      MsgAlert("Archivo de respaldo corrupto!")
   ENDIF

RETURN lOk

/*----------------------------------------------------------------------------------*/

Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1704
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Postby Raymundo Islas M. » Wed Aug 30, 2006 8:06 pm

Amigo Carlos, Excelente !!!!

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby carlos vargas » Wed Aug 30, 2006 9:22 pm

gracia :-)

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1704
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 63 guests