Bajar ficheros desde una conexión FTP.

Post Reply
FiveWiDi
Posts: 910
Joined: Mon Oct 10, 2005 2:38 pm

Bajar ficheros desde una conexión FTP.

Post by FiveWiDi »

Hola a todos,

¿Alguién tiene una rutina para bajarse ficheros desde una conexión FTP?

Gracias,
Un Saludo
Carlos G.

FiveWin 19.06 + Harbour 3.2, BCC 7 Windows 10
User avatar
Joel Andujo
Posts: 109
Joined: Fri Oct 07, 2005 3:14 pm
Location: Cd. Obregón, Sonora, México
Contact:

Re: Bajar ficheros desde una conexión FTP.

Post by Joel Andujo »

// BDía, esto funciona para mi, en servidores FTP, con SFTP es otra historia.

*--// Conexión con SFTP
oInternet:=TInternet():New()
oFTP :=TFTP():New('www.miftp.com.mx', oInternet, cUser:='Joel', cPassword:='123456', lFTPPAsivo:=.f., nPuerto:=21)
if empty(oFTP:hFTP)
oInternet:End()
retu .f.
endi

cFileOrigen:='c:\respaldo\Archivo.txt'
hSource :=FOpen(cFileOrigen)
cFileFTP:='httpdocs/Clientes/Archivo.txt'

oFile :=TFtpFile():New(cFileFTP, oFTP)
oFile:OpenWrite()
FSeek(hSource, 0, 0)
nBufSize:=2000000
cBuffer :=space(nBufSize)

do while ( nBytes:=FRead( hSource, @cBuffer, nBufSize ) ) > 0
oFile:Write( SubStr( cBuffer, 1, nBytes ) )
endd
FClose( hSource )
oFile:End()
FiveWiDi
Posts: 910
Joined: Mon Oct 10, 2005 2:38 pm

Re: Bajar ficheros desde una conexión FTP.

Post by FiveWiDi »

Muchas gracias Joel,

Ahora estoy acabando de modificar según me conviene la rutina de Biel Maimo (gracias Biel), finalmente substituyendo funciones que no me compilaban he obtenido algo que parece funcionar; además el copiado es como el código que has mostrado.

Muchas gracias,
Un Saludo
Carlos G.

FiveWin 19.06 + Harbour 3.2, BCC 7 Windows 10
Dioni
Posts: 28
Joined: Tue May 12, 2009 8:45 pm
Location: Lima - Perú

Re: Bajar ficheros desde una conexión FTP.

Post by Dioni »

Hola Joel Buen dia....

Es muy pactico tu funcion de subir a ftp gracias por tu contribucion..

podrias poner la funcion de bajar de ftp...

Gracias....
User avatar
Joel Andujo
Posts: 109
Joined: Fri Oct 07, 2005 3:14 pm
Location: Cd. Obregón, Sonora, México
Contact:

Re: Bajar ficheros desde una conexión FTP.

Post by Joel Andujo »

Claro que si, espero te ayude.

Code: Select all

// Conexión con SFTP
 oInternet:=TInternet():New()
 oFTP     :=TFTP():New(cCtaFTP, oInternet, cUsuFTP, cPassFTP, op:lPavFTP, op:nPuertoFTP)
 if empty(oFTP:hFTP)
    mensaje('Imposible Conectarse al Servidor FTP...')
    oInternet:End()
    retu .f.
 endi

 cCarpDes:='c:\descargas'
 cCarpOri:='Archivos\XML'

 *--// Lee los archivos de una determinada carpeta del FTP
 aFiles:=oFTP:Directory(cCarpOri+'\*.*')
 if len(aFiles)=0
    retu.f.
 endi

 *--// Carpeta Default donde están los XML (sólo para bajar)
 FtpSetCurrentDirectory(oFTP:hFTP,  cCarpOri )
 for nArc:=1 to len(aFiles)
     cFileFte:=alltrim(aFiles[nArc,1])
     msgwait('Bajando archivo '+cFileFte, 'Espere por favor...', 1)

     nBufSize:=4096
     cBufSize:=space(nBufSize)
     hTarget :=FCreate(cCarpDes+cFileFte)
     oFile   :=TFtpFile():New(cFileFte, oFTP)
     oFile:OpenRead()
     do whil (nBytes:=len(cBuffer:=oFile:Read(nBufSize)))>0
        FWrite(hTarget, cBuffer, nBytes)
        lEnvio:=.t.
     endd
     fClose(hTarget)
     oFile:end()
 next
 
saludos
JAAM
Dioni
Posts: 28
Joined: Tue May 12, 2009 8:45 pm
Location: Lima - Perú

Re: Bajar ficheros desde una conexión FTP.

Post by Dioni »

Muchas gracias Joel,

Ahoya ya puedo actualizar los programas de mis clientes ...
Post Reply