FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problemas con FTP
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM

Problemas con FTP

Posted: Tue Aug 02, 2011 08:25 AM
Buenos dias
Vengo utilizando el siguiene codigo para descargarme unos ficheros txt de un sito ftp:
Code (fw): Select all Collapse
#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
--------------------------

Saludos



Jose Luis
Posts: 226
Joined: Sun May 13, 2012 07:52 AM

Re: Problemas con FTP

Posted: Wed Nov 07, 2012 06:55 PM

hi Joseluis,
la funci贸n arriba fue de gran ayuda
tener un ejemplo para Upload??

(google traductor)

FWH2008 | xHarbour | BCC74 | SQLRDD

Continue the discussion