compa帽eros, buenas:
Tengo la necesidad de descargar desde mi aplicaci贸n archivos de un servidor via FTP. El c贸digo est谩 escrito desde hace 1 a帽o y funcionando (o al menos eso pensaba), pero observo que aleatoriamente hay veces que descarga el archivo con 0kb y por supuesto, al abrirlo, me genera error.
驴Por qu茅?... Es problema del c贸digo? Es problema del servidor?
Gracias.
NOTA: c贸digo obtenido siguiendo las instrucciones de nuestro compa帽ero BIEL Maim贸
Tengo la necesidad de descargar desde mi aplicaci贸n archivos de un servidor via FTP. El c贸digo est谩 escrito desde hace 1 a帽o y funcionando (o al menos eso pensaba), pero observo que aleatoriamente hay veces que descarga el archivo con 0kb y por supuesto, al abrirlo, me genera error.
驴Por qu茅?... Es problema del c贸digo? Es problema del servidor?
Gracias.
聽oInternet:=tinternet():New()
聽 sysrefresh()
聽 oFtp 聽 聽 :=tFtp():New(cServer,oInternet,cUser,cPass)
聽 if !Empty( oFtp:hFtp )
聽 聽aFiles :=oFtp:Directory(lower(ALLTRIM(actual_CA)+'/*.'+cextension)) && CUIDADO: Se tiene en cuenta las MAYUSC/minusc
聽 聽if Len(aFiles)>0
聽 聽 聽SndPlaySound( ".\alarma.wav" )
聽 聽 聽oText:SetText('Descargando archivo... espere...')
聽 聽 聽GetFileT( (ALLTRIM(actual_CA)+'/'+carchivo),aFiles[nposi,2],oFtp,carchivo,oText,oDlgj) && descargando archivo con la informaci贸n de las novedades de la nueva versi贸n a instalar
聽 聽 聽if file(camino+"\"+carchivo)
聽 聽 聽 CURSORARROW()
聽 聽 聽 ShellExecute(,"open",camino+'\'+carchivo)
聽 聽 聽endif
聽 聽endif
聽endif
....
FUNCTION GetFileT( cSource,nSize,oFtp,cnamefile,oText,oDlguu ) && para descargar el archivo TXT
聽 聽LOCAL oFile, hTarget, lValRet:=.F.
聽 聽LOCAL nBufSize,cBuffer,nBytes, nTotal:=0,nFile:=0
聽 聽nBufSize:=4096
聽 聽cBuffer:=Space(nBufSize)
聽 聽hTarget := FCreate(camino+'\'+cnamefile)
聽 聽oFile := tFtpFile():New( cSource, oFtp )
聽 聽oFile:OpenRead()
聽 聽WHILE 聽( nBytes := Len( cBuffer := oFile:Read( nBufSize ) ) ) > 0
聽 聽 聽 FWrite( hTarget, cBuffer, nBytes )
聽 聽 聽 nTotal+=nBytes
聽 聽 聽 oMeter:Set( nTotal )
聽 聽 聽 SysRefresh()
聽 聽END
聽 聽FClose( hTarget )
聽 聽oFile:End()
RETURN nTotal==nSizeNOTA: c贸digo obtenido siguiendo las instrucciones de nuestro compa帽ero BIEL Maim贸