Vengo utilizando el siguiene codigo para descargarme unos ficheros txt de un sito ftp:
- Code: Select all Expand view
- #include "fivewin.ch"
#include "xbrowse.ch"
memvar Publicas
Function Mandaf(fichero)
local i,afiles,oText
local aSource:={}
local aTarget:={}
Local oInternet, oFtp, cServFtp:="nombre del ftp",cUserFTp:="useerftp",cPassFtp:="passwordftp"
oInternet := TInternet():New()
oFTP := TFTP():New( Alltrim(cServFtp), oInternet, Alltrim(cUserFtp),Alltrim(cPassFtp) )
If ! Empty( oFTP:hFTP )
aFiles := {}
aFiles = oFTP:Directory( "/html/recepcion/*.txt")
msgwait("Hemos encontrado "+alltrim(str(len(aFiles)))+" Ficheros en Arsys","AVISO",2)
for i = 1 to len(afiles)
aAdd(aSource,"/html/recepcion/"+Alltrim(afiles[i,1]))
aAdd(aTarget,Publicas:cUnidad+"\ficheros\"+Alltrim(afiles[i,1]))
next i
MsgMeter({| oMeter,oText,oDlg,lEnd | ;
FtpGetFiles( aSource, aTarget, oFTP,oMeter,oText,oDlg,@lEnd )},;
"Descargando Ficheros ...",;
"Descargando Ficheros ...")
Else
msgwait(" NO HAY FICHEROS PARA TRASPASAR DESDE ARSYS","AVISO",2)
Endif
oInternet:End()
Return (nil)
//******************
Function FtpGetFiles( aSource, aTarget, oFTP, oMeter,oText,oDlg,lEnd )
Local nBufSize:=4096
local n
local hTarget
local cBuffer := Space( nBufSize )
local nBytes, nFile := 0, nTotal := 0
local nTotSize := 0
local oFile, aFiles, aSizes := {}
for n = 1 to Len( aSource )
aFiles = oFTP:Directory( aSource[ n ] )
if Len( aFiles ) > 0
AAdd( aSizes, aFiles[ 1 ][ 2 ] ) // first file, size
nTotSize += ATail( aSizes )
else
AAdd( aSizes, 0 )
endif
SysRefresh()
next
oMeter:nTotal := nTotSize
for n = 1 to Len( aSource )
hTarget = FCreate( aTarget[ n ] )
oFile = TFtpFile():New( aSource[ n ], oFTP )
oFile:OpenRead()
nfile:=0
SysRefresh()
while ( nBytes := Len( cBuffer := oFile:Read( nBufSize ) ) ) > 0 .and. !lEnd
FWrite( hTarget, cBuffer, nBytes )
oMeter:Set(nFile+=nBytes)
oText:SetText("Descargando Ficheros.... "+alltrim(str(nFile+=nBytes)))
SysRefresh()
end
FClose( hTarget )
oFtp:Deletefile(oFile:cFilename)
oFile:End()
if lEnd
exit
endif
next
return nil
Pero desde hace una semana éste código no me conecta al sitio ftp.
Ha coincidido ésto con que me han cambiado el router en Telefónica debido a que hemos ampliado la velocidad.
No sé si puede ser debido a que en el anterior router yo tenía quitado los filtros que traia el router zyxel por defecto (este tambien es zyxel, pero no trae el menú para quitar los filtros), los filtros eran webset, puertos 21 y 80.
He llamado a Telefónica para que me dijeran como quitar éstos filtros, y me dicen que no dan soporte para ésto, que lo único que podemos es abrir los puertos, pero yo ya los tengo abiertos.
Alguna idea por si no fuera de ésto, o algún código distino que no le afecto esto?.
Saludos