Conexao FTP

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Conexao FTP

Mensagem por juniorcamilo »

Amigos.
uso as funções disponível no fórum:
UPLOAD_ARQ e DONWLOAD_ARQ, funcionado muito bem ate o momento, mas hj em especial deu problema e não consegue conexão! tentei a conexão pelo file zila e retornou a seguinte msg "Tentativa de conexão falhou com "ECONNREFUSED - Conexão recusada pelo servidor", entrei em contato com o Locaweb e me orientaram a conectar com a porta 22! pelo filezila deu certo mas pelas funções não!

notei que pelo filezila no campo host quando troco a porta para 22 ele acrescenta "sftp://"
co

Código: Selecionar todos

cUrl := "ftp://" + cUsuario + ":" + cPass + "@" + cFtpServer
   oUrl       := TUrl():New( cUrl )
   oFTP       := TIPClientFtp():New( oUrl, .T. )
   oFTP:nConnTimeout   := 20000
   oFTP:bUsePasv       := .T.  // F = ENVIA BINARIO E FICA ZERO BYTE
   oFTP:nDefaultPort   := nPorta   //PORTA DO FTP
   oFTP:oUrl:cUserID   := cUsuario
   oFTP:oUrl:cServer   := cFtpServer
   oFTP:oUrl:cPassword := cPass
   @ 23,00 say PadcC("Abrindo conexão com o FTP.....Aguarde!!!",80)
   IF oFTP:Open( cUrl ) ......
como proceder?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Conexao FTP

Mensagem por JoséQuintas »

Infelizmente....

De vez em quando acontece isso com meu site, e depois volta ao normal.

NUNCA souberam explicar o porque.
Geralmente dizem isso: se o outro programa acessa... tá normal...

Eu apenas espero voltar ao normal, e vou quebrando o galho com o ftp padrão do Windows.
Geralmente volta ao normal no dia seguinte.
Mas acontece menos que uma vez por mês, não é uma coisa frequente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Conexao FTP

Mensagem por juniorcamilo »

foi oque me falaram também! vou aguardar!
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Conexao FTP

Mensagem por pauloa1 »

Ajuda com conexão via ftp

Hoje criei uma nova conta ftp.
Acessa via site, via Filezila , tudo ok.

Mas pelo sistema não vai...

O que pode ser?
Detalhe: com a mesma configuração, só outro servidor de ftp funciona a muito tempo já.

Código: Selecionar todos

cFTPSERVER:=eFTPSERVER1
cUrl := "ftp://" + eFTPUSER + ":" + eFTPPASS + "@" + cFTPSERVER

oUrl              := tUrl():New( cUrl )
oFTP              := tIPClientFtp():New( oUrl, .T. )  // .t. gera ftp.log
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 | Thisform:oMostra:value:="Enviando.. "+ farq + STR((done/cTamanho)*100,4)+" %" }
   oFtp:UploadFile( farq )
   oFTP:Close()  // fehca a conexão do FTP
ELSE
   RETURN .F.
ENDIF
a Url gerada ftp://3240552_pauloa1sccn:senha@sccsistemas.dx.am
se eu copiar e colar na barra de endereço do browser da net ele abre normal.

Arquivo de Log gerado.

20191128-17:35:48 :INETCONNECT( sccsistemas.dx.am, 21 )
>> 5016C48 <<

20191128-17:35:48 :INETERRORCODE( 5016C48 )
>> 0 <<

20191128-17:35:49 :INETRECVLINE( 5016C48, , 128 )
>> 220 ::ffff:185.176.43.96 FTP server ready <<

20191128-17:35:49 :INETERRORCODE( 5016C48 )
>> 0 <<

20191128-17:35:49 :INETSENDALL( 5016C48, 26, USER 3240552_pauloa1sccn )
>> 26 <<

20191128-17:35:49 :INETRECVLINE( 5016C48, , 128 )
>> 331 Password required for 3240552_pauloa1sccn <<

20191128-17:35:49 :INETERRORCODE( 5016C48 )
>> 0 <<

20191128-17:35:49 :INETSENDALL( 5016C48, 16, PASS senha )
>> 16 <<

20191128-17:35:49 :INETRECVLINE( 5016C48, , 128 )
>> <<

20191128-17:35:49 :INETERRORCODE( 5016C48 )
>> -3 <<


Não sei o que significa os retornos...

Paulo
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Conexao FTP

Mensagem por bencz »

Faça um experimento:

Código: Selecionar todos

cFTPSERVER:=eFTPSERVER1
cUrl := "ftp://" + cFTPSERVER

oUrl              := tUrl():New( cUrl )
oFTP              := tIPClientFtp():New( oUrl, .T. )  // .t. gera ftp.log
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 | Thisform:oMostra:value:="Enviando.. "+ farq + STR((done/cTamanho)*100,4)+" %" }
   oFtp:UploadFile( farq )
   oFTP:Close()  // fehca a conexão do FTP
ELSE
   RETURN .F.
ENDIF
Imagem
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Conexao FTP

Mensagem por pauloa1 »

Você fala mudar a segunda linha do código?

Pois o resto está igual.

Paulo
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Conexao FTP

Mensagem por pauloa1 »

if .not. oFtp:open(cUrl)
msginfo("Ftp error "+oFtp:LastErrorMessage())
endif

Da mensagem Ftp Error Buffer Overrun

Será que algo está bloqueando o envio?

Paulo
Anexos
ftp1.jpg
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Conexao FTP

Mensagem por lucimauro »

Conseguiu resolver Paulo?
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Conexao FTP

Mensagem por JoséQuintas »

Esquece isso de ficar mudando de pasta, apenas envia e/ou baixa o arquivo e pronto.
envia de \path\arquivo para /path/arquivo.
Quanto mais complicar pior.
A resposta dos servidores não é padrão, ficar mudando de pasta ou pegando diretório... é só pedir pra ter problemas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Conexao FTP

Mensagem por pauloa1 »

Troquei de servidor e funcionou certinho.

Upload ok 100%

Preciso de ajuda para download
peguei uns exemplos no forum.
Mas não entendi como faço pra mostrar a pasta onde quero salvar o arquivo.



Function Donwload_File(ftpdir,ftpfile,fdestino)
**********************************************

ftpproto :="ftp://"
ftpserver := alltrim(Thisform:oEND_FTP:value)
ftpuser := alltrim(Thisform:oUSER_FTP:value)
ftppass := alltrim(Thisform:oSENHA_FTP:Value)
curl := ftpproto+ftpuser+":"+ftppass+"@"+ftpserver
oUrl := turl():new(curl)
oCred := tIPCredentials()
oFtp := tipclientftp():NEW(oUrl,,.F.)
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .T.
oFTP:nDefaultPort := eFTPPORTA
oFTP:oUrl:cUserID := eFTPUSER
oFTP:oUrl:cPassword := eFTPPASS


IF oFTP:Open()
oFTP:Cwd(ftpdir) // muda o diretorio
oFtp:DownLoadFile(ftpdir+"\"+ftpfile)
oFTP:CLOSE()
Else
msginfo("Ftp error "+oFtp:LastErrorMessage())
MsgInfo("Não foi possivel se conectar ao servidor, Favor tente mais tarde.","Aviso do Sistema")
ENDIF
Return


Paulo
pauloa1
Usuário Nível 3
Usuário Nível 3
Mensagens: 227
Registrado em: 25 Jun 2008 14:57
Localização: Augusto Pestana-RS

Conexao FTP

Mensagem por pauloa1 »

Já Consegui com o colega Basso.
deu certinho.

Código: Selecionar todos

IF oFTP:Open()
   oFTP:Cwd(ftpdir)     // muda o diretorio
   
	IF !empty(clista:=oFTP:List())

       GetFiles( cLista,aArray_arqftp )     // CRIA UM ARQUIVO TEMPORARIO COM A LISTA
       FOR n1 := 1 TO len(aArray_arqftp) 
		     cFileName := aArray_arqftp[n1,1]
		     oFTP:DownLoadFile( cPastaLocal + cFileName, cFileName )  // BAIXA O ARQUIVO
      NEXT

   ENDIF
   oFTP:CLOSE()
Else
   msginfo("Ftp error "+oFtp:LastErrorMessage())
//   MsgInfo("Não foi possivel se conectar ao servidor, Favor tente mais tarde.","Aviso do Sistema")
ENDIF

FUNCTION GetFiles( cLista,aArray_arqftp )
LOCAL i, cLinha, cmFile

   FOR i := 1 TO MLCOUNT( cLista ) - 0
      cLinha := MEMOLINE( cLista,254, i )
      *- -rw-r--r--    1 engers33   engers33      3537116 Sep 30 16:42 up_silabor.exe
      cmFile   := SUBST( cLinha, 60,50 )
      if !empty(cmFile)
 	      aadd(aArray_arqftp,{cmFile})
      endif
	NEXT
RETURN Nil	
Responder