Page 1 of 1

Bajar ficheros desde una conexión FTP.

Posted: Sat Feb 24, 2018 10:48 pm
by FiveWiDi
Hola a todos,

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

Gracias,

Re: Bajar ficheros desde una conexión FTP.

Posted: Tue Feb 27, 2018 3:56 pm
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()

Re: Bajar ficheros desde una conexión FTP.

Posted: Tue Feb 27, 2018 4:37 pm
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,

Re: Bajar ficheros desde una conexión FTP.

Posted: Wed Feb 28, 2018 7:16 pm
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....

Re: Bajar ficheros desde una conexión FTP.

Posted: Fri Mar 02, 2018 4:11 pm
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

Re: Bajar ficheros desde una conexión FTP.

Posted: Sat Mar 03, 2018 1:19 pm
by Dioni
Muchas gracias Joel,

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