Página 1 de 1

Conexao FTP

Enviado: 06 Nov 2019 09:19
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?

Conexao FTP

Enviado: 06 Nov 2019 12:06
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.

Conexao FTP

Enviado: 06 Nov 2019 16:49
por juniorcamilo
foi oque me falaram também! vou aguardar!

Conexao FTP

Enviado: 28 Nov 2019 17:55
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

Conexao FTP

Enviado: 28 Nov 2019 18:01
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

Conexao FTP

Enviado: 28 Nov 2019 20:06
por pauloa1
Você fala mudar a segunda linha do código?

Pois o resto está igual.

Paulo

Conexao FTP

Enviado: 29 Nov 2019 11:47
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

Conexao FTP

Enviado: 30 Nov 2019 18:27
por lucimauro
Conseguiu resolver Paulo?

Conexao FTP

Enviado: 30 Nov 2019 19:03
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.

Conexao FTP

Enviado: 06 Dez 2019 17:35
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

Conexao FTP

Enviado: 07 Dez 2019 17:44
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