Código: Selecionar todos
#include "inkey.ch"
#include "hwgui.ch"
#include "fileio.ch"
#include "common.ch"
#include "Directry.ch"
#define eFTPSERVER1 'ftp.servidor.com.br' // ENDEREÇO SERVIDOR FTP 01
#define eFTPPORTA 21 // PORTA DO FTP PARA BAIXAR ATUALIZAÇÕES DO SISTEMA
#define eFTPUSER 'usuario' // USUARIO DO FTP PARA BAIXAR ATUALIZAÇÕES DO SISTEMA
#define eFTPPASS 'senha' // SENHA DO FTP PARA BAIXAR ATUALIZAÇÕES DO SISTEMA
FUNCTION MAIN()
local aDir0, nTAMANHO:=0
aDir0 := directory('sistema.exe')
nTAMANHO:=aDir0[1,2]
IF UPLOAD_ARQ( "/pasta_destino", nTAMANHO, 'sistema.exe' ) = .F.
MsgInfo('Enviou para ftp com sucesso')
ENDIF
RETURN NIL
********************************************************************
STATIC FUNCTION UPLOAD_ARQ( FTPDIR, cTamanho, farq )
********************************************************************
Local cUrl, oUrl, oFTP, cFTPSERVER:=''
cFTPSERVER:=eFTPSERVER1
cUrl := "ftp://" + eFTPUSER + ":" + eFTPPASS + "@" + cFTPSERVER
oUrl := tUrl():New( cUrl )
oFTP := tIPClientFtp():New( oUrl, .F. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .T.
oFTP:nDefaultPort := eFTPPORTA //PORTA DO FTP
oFTP:oUrl:cUserID := eFTPUSER
oFTP:oUrl:cServer := cFTPSERVER
oFTP:oUrl:cPassword := eFTPPASS
IF oFTP:Open( cUrl )
IF !oFTP:Cwd(ftpdir) // se não achar o diretorio ele cria
oFTP:MKD(ftpdir) // muda o diretorio
ENDIF
oFTP:Cwd(ftpdir) // muda o diretorio
oFTP:reset()
oFtp:exGauge := { | done | oSAY1:SETTEXT("Enviando Arquivo: "+ farq + STR((done/cTamanho)*100,4)+" %") }
oFtp:UploadFile( farq )
Millisec(1000)
oFTP:Close() // fehca a conexão do FTP
ELSE
RETURN .F.
ENDIF
RETURN .T.



