Página 1 de 1

FTP UPLOAD

Enviado: 05 Nov 2012 11:32
por HASA
:-O
Bom dia, amigos estou tentando fazer teste com envio de um pequeno arquivo texto mas aparentemente a tip.lib do Xharbour 1.2.3 ( Rev. 9733 ) está com algum bug ( ou eu sei lá ) vejam:

comando[:]
oClient:CWD( cfolder )
oClient:reset()
Log[:]
20121105-11:15:04 :INETSENDALL( F0AB68, 35, CWD /www.meusite.com/temp )
>> 35 <<
Log[:] até aqui belezinha diz que está na pasta que presiso
20121105-11:15:04 :INETRECVLINE( F0AB68, , 128 )
>> 250 OK. Current directory is /www.meusite.com/temp <<

20121105-11:15:04 :INETERRORCODE( F0AB68 )
>> 0 <<
:%
Log[:] AQUI APARECE ESSE "CWD /" SOZINHO TIRANDO DA PASTA ACIMA ?
20121105-11:15:04 :INETSENDALL( F0AB68, 7, CWD / )
>> 7 <<
20121105-11:15:04 :INETRECVLINE( F0AB68, , 128 )
>> 250 OK. Current directory is / <<

Esquecendo algum comando ?
Hasa

FTP UPLOAD

Enviado: 12 Nov 2012 17:38
por Toledo
Hasa, tente tirar o comando oClient:reset() e faça um teste.

Abraços,

FTP UPLOAD

Enviado: 13 Nov 2012 11:05
por HASA
:))
Bom dia, Toledo na verdade não tinha esse comando coloquei por último na esperança de funcionar mas... creio que achei o problema na lib tip.lib do xHarbour dentro da classe:
METHOD UpLoadFile( cLocalFile, cRemoteFile ) CLASS tIPClientFTP

Tem um se vazio:

IF ! Empty( ::oUrl:cPath )

IF ! ::CWD( ::oUrl:cPath ) <<<<<< aqui ele gera o outro CWD novamente
RETURN .F.
ENDIF

ENDIF

Então percebi que o metodo recebe 2 parametros, e mandei o segundo e ai é
que não vai mesmo, com um parametro só ele entre no !Empty() e volta para o
diretório raiz, mas... envia o arquivo ?

Obrigado pela atenção, vou lutando aqui o Luiz Culik está me passando uma dica vou fazer alguns testes para ver ok.

:)Pos
Hasa

FTP UPLOAD

Enviado: 26 Dez 2012 16:33
por sygecom
O seu código não veio completo para testarmos, mas eu uso conforme abaixo com xharbour 1.2.1 + bcc 5.5.1 e funciona bem a tempos:

Código: Selecionar todos

#define eFTPSERVER1  'www.sygecom.com.br'      // ENDEREÇO SERVIDOR 01 DO FTP
#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

FUNC MAIN()
LOCAL aDir0 := directory('SISTEMA.EXE')
LOCAL nTAMANHO:=aDir0[1,2]
LOCAL oSAY1 

@ 245,423 SAY oSAY1 CAPTION " " SIZE 100,22; // tela em Hwgui...desconsiderar se não usar
FONT HFont():Add( '',0,-12,400,,,)

UPLOAD_ARQ( "/atualiza/nomesistema/bin", nTAMANHO, 'SISTEMA.EXE', oSAY, 1 ) 

RETURN NIL

********************************************************************
STATIC FUNCTION UPLOAD_ARQ( FTPDIR, cTamanho, farq, oSAY1, nSERVER )
********************************************************************
Local cUrl, oUrl, oFTP, cFTPSERVER:=''

IF nSERVER=1
   cFTPSERVER:=eFTPSERVER1
   cUrl := "ftp://" + eFTPUSER + ":" + eFTPPASS + "@" + cFTPSERVER
ELSE
   cFTPSERVER:=eFTPSERVER2
   cUrl := "ftp://" + eFTPUSER2 + ":" + eFTPPASS + "@" + cFTPSERVER
ENDIF


oUrl              := tUrl():New( cUrl )
oFTP              := tIPClientFtp():New( oUrl, .F. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv     := .T.
IF nSERVER=1
   oFTP:nDefaultPort := eFTPPORTA   //PORTA DO FTP
   oFTP:oUrl:cUserID := eFTPUSER
ELSE
   oFTP:nDefaultPort := eFTPPORTA2  //PORTA DO FTP
   oFTP:oUrl:cUserID := eFTPUSER2
ENDIF
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 )
   oFtp:UploadFile( ARQ_VERSAO() )

   Millisec(1000)

   oFTP:Close()  // fehca a conexão do FTP
ELSE
   RETURN .F.
ENDIF
RETURN .T.

FTP UPLOAD

Enviado: 02 Jan 2013 11:53
por HASA
:))
Bom ANO de 2013 para Todos, Leo valeu pela dica, no news do xHarbour o colega Claudio H. deu a seguinte dica:

oClient:CWD( cfolder )
oClient:oUrl:cPath := "" <==== agregue esto
If !oClient:UploadFile( cFile )

Foi na mosca, muito obrigado pela dica mesmo assim,
Hasa