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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 237
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: 237
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: 237
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: 467
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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 237
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: 237
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