Jump to content
Fivewin Brasil

Problema com FTP


Luiz Fernando

Recommended Posts

Colegas uso FTP para envio e recebimento de arquivos deste 2010, sempre funcionou normal, coisa de 3 semanas dois cliente meus mudaram a net para fibra, deste então meu sistema não consegue mais enviar e nem receber arquivo nestes dois clientes, pior que o suporte da empresa de net faz teste pelo filezile e roda normal, fiz um pequeno teste usando outra linguagem e tb vai normal, sera que alguém ja passou por algo parecido.

 

Obs: ele consegue conectar normal ao FTP, só não consegue transferir arquivos.

 

Obrigado

 

Link to comment
Share on other sites

 

Desculpe caro usuário, mas sem um exemplo, fica dificil t ajudar né? Abs

Mais moça, como dize acima, uso a rotina deste 2010, funciona em todos clientes, sendo assim o problema não é na função em si, mais mesmo assim segue o codigo abaixo.

 

FUNCTION FtpRec(cVende,aFtp)   
  LOCAL a_temp := aFiles := {}
  LOCAL cServFtp,cUserFTp,cPassFtp,cRemessa
  LOCAL lRet := .T.
  LOCAL oInternet, oFtp
  cServFtp := aFtp[1,3] 
  cUserFTp := aFtp[1,4]
  cPassFtp := aFtp[1,5]
  cRemessa := aFtp[1,6]           // remessa do ftp
  cRetorno := aFtp[1,7]           // retorno do ftp
  
  PRIVATE cCaminho := cRemessa+cVende+"/"

  oInternet := TInternet():New() 
  oFTP := TFTP():New( Alltrim(cServFtp), oInternet, Alltrim(cUserFtp),Alltrim(cPassFtp) ) 
  if !Empty( oFTP:hFTP ) 
     aFiles := FtpDirectory( "&cCaminho/*.rem", "A", oFTP:hFTP )
     if Len( aFiles ) >= 1  
        for x=1 TO Len(aFiles)
            FtpGetFile( oFTP:hFTP, "&cCaminho/" + aFiles[x][1],cPath1+"PALM\"+cVende+"\"+aFiles[x][1] )
	    oFtp:DeleteFile( "&cCaminho/" + aFiles[x][1] )          
  	next
     endif   
  else  
     lRet := .F.
  endif 
  oFTP:End()
  oInternet:End() 
RETURN lRet 

obrigado

Link to comment
Share on other sites

Qua a versão de sue FWHX?

 


 Pasta de C:\FWH1701\source\classes

31/01/2017  12:19            10.056 tftpserv.prg

 

Veja se ajuda:

 

http://forums.fivetechsupport.com/viewtopic.php?f=6&t=26231&p=144119&hilit=FtpDirectory#p144119

 

http://forums.fivetechsupport.com/viewtopic.php?f=3&t=23075&p=143963&hilit=FtpDirectory#p143963

 

 

Link to comment
Share on other sites

Ola, Boa noite

 

Geralmente o problema pode estar na porta de conexão, o FTP usa a PORTA 22, que geralmente você redireciona para a PORTA 2222 ou 2221 ou outra porta, é só verificar isso que você vai achar o problema, pois comigo já aconteceu isso.

 

Espero ter ajudado.

Link to comment
Share on other sites

Meu Pitaco...

Sempre que os provedores reconfiguram seus firewall, alegando necessidade de segurança, esse problema ocorre.

Você entra em contato, eles pedem para testar com o Filezila e dizem que o problema é do seu aplicativo.

Por prática de muitos anos, ameaço cancelar o serviço, alegando que sempre funcionou, portanto seria problema deles.

Por magia, alguns dias depois, tudo volta a funcionar.

Realmente  o erro está na nossa linguagem de programação que não consegue acompanhar as alterações feitas pelos provedores em seu Firewall..

Abrs.

 

Link to comment
Share on other sites

Pessoal agradeço as dicas acima, mais não vai nem a pau, tentei trocar a porta como mencionado pelo Jackson, analisei os exemplos do link do Kapiaba, ele conecta no FTP normal, só não consegue receber e nem enviar arquivos, tenho hoje três serviços com empresas diferente de FTP, todas ocorre o mesmo problema.

conforme o código abaixo verifiquei os caminhos arquivos esta tudo ok, até pq a mesma rotina funciona em varios clientes, a unica coincidência neste dois clientes que eles trocaram a NET(net de radio para fibra), este mesmo provedor tenho outros clientes que usa e funciona normal.

 

if Len( a_temp ) >= 1  
   for x=1 TO Len(a_temp)
       FtpSendFiles( {cPath1+"PALM\REMESSA\"+cVende+"\" + a_temp[x][1]}, ;
	   	                  { "cCamFtpEnv/fpgto.rem"+ a_temp[x][1] }, oFtp) 				                  
   next               
endif




FUNCTION FtpSendFiles( aSource, aTarget, oFTP ) 
********************************************************************************
  LOCAL nBufSize:=4096 
  LOCAL n 
  LOCAL hSource 
  LOCAL cBuffer := Space( nBufSize ) 
  LOCAL nBytes, nFile := 0, nTotal := 0 
  LOCAL nTotSize := 0 
  LOCAL oFile  	
  ? "aqui 2"
  FOR n = 1 TO Len( aSource ) 
      IF ! File( aSource[ n ] ) 
         MsgStop( "Arquivos não Encontrados: " + aSource[ n ] ) 
         EXIT 
      ENDIF 
      hSource = FOpen( aSource[ n ] ) 
      nTotSize += FSeek( hSource, 0, 2 ) 
      FClose( hSource ) 
      SysRefresh() 
  NEXT 

  FOR n = 1 TO Len( aSource ) 
      hSource = FOpen( aSource[ n ] ) 
      oFile = TFtpFile():New( aTarget[ n ], oFTP ) 
      oFile:OpenWrite() 
      FSeek( hSource, 0, 0 ) 
      nFile := 0 
      SysRefresh() 
      WHILE ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0 
         oFile:Write( SubStr( cBuffer, 1, nBytes ) ) 
         SysRefresh() 
      END 
      FClose( hSource ) 
      oFile:End() 
  NEXT 

RETURN nil 

 

 

 

Link to comment
Share on other sites

kkkkkkkk

Parece piada, más infelizmente não é. 

Vejam a resposta que acabo de ter em relação a esse problema :

"Domínio: fivesolution.com.br

Data/Hora: 29/08/2017 08:31:46

Descrição do andamento:

Prezado(a) Cliente,

bom dia!

Conforme o chamado em aberto, não existe nenhum bloqueio de acesso ao servidor FTP por softwares de terceiros. Conforme o constatado, o acesso foi feito pelo filezilla de forma normal, solicitamos que revise as configurações de conexão juntamente ao sua aplicação com o intuito de encontrar erros.

No mais, estamos a disposição. -----------------------------------------------------------------------

Você precisar logar em seu painel de controle para visualizar o status do seu pedido.

O Turbosite agradece seu contato.

Nossa equipe está a sua disposição para quaisquer esclarecimentos futuros."

Agora só será resolvido depois que eu brigar muito com eles...

Abrs.

 

Link to comment
Share on other sites

Valdir em 2009 do nada todos meus clientes pararam de funcionar o FTP (uolhost), na época achei que ia ter um infarto devido a gravidade do assunto, pq meus clientes simplesmente para sem este serviço, após duas semanas de muita briga, acabei contratando outro serviço de FTP,  problema foi sanado na hora, hoje por precaução tenho 3 provedores de FTP, mais na época tudo dava certo filezila, pelo explorer entre outros sistemas, dai eles dizem o problema é no seu sistema, como posso argumentar alguma coisa com eles, fica dificil.

 

 

Luiz Fernando

 

 

Link to comment
Share on other sites

 

Teste com este aplicativo para ver se o seu FTP esta ok mesmo:  LeechFTP

 

http://www.baixaki.com.br/download/leechftp.htm

 

Abs.

Mais moça, já foi testado com vários aplicativo, e o FTP esta ok, vou tentar até o final da tarde uma solução dentro do fivewin aqui, caso não tiver sucesso, terei que fazer um projeto a parte para esta finalidade usando a windev, o que da dó é ocupar o tempo com uma coisa que já estava ok em fivewin.

 

Abraços

Luiz Fernando

Link to comment
Share on other sites

Boa noite.

O que aconteceu com o Luiz  é mais ou menos o mesmo problema que tive sendo que com a classe SMTP. Eu utilizava a classe para envio dos meus erros de sistema do cliente aqui para a empresa e de repente do nada parou de enviar. Acredito que o que ele esta querendo dizer é que o problema é lá no provedor mais com as ferramentas que temos não conseguimos provar isso pra eles.

Link to comment
Share on other sites

 

Acredito que o que ele esta querendo dizer é que o problema é lá no provedor mais com as ferramentas que temos não conseguimos provar isso pra eles.

Exato, são três parte envolvida, eu, o provedor da internet e o local aonde esta hospedado o FTP, com certeza é alguma coisa da classe do fivewin, só pode, pq todas as outras ferramenta da certo, inclusive um pequeno exemplo que fiz usando a windev deu certo.

Obs: vou perder uns 3 dias para reescrever as rotinas que usa FTP com a windev, mais não tem o que fazer, o correto mesmo seria esquecer FTP a trabalhar com webservice, mais infelizmente não tenho conhecimento suficiente ainda para isto.

Obrigado a todos

Abs

Luiz Fernando

 

Link to comment
Share on other sites

Eu tenho certeza que o problema é no servidor, tanto é que passei ao Marcelo(Marca) o contato do Provedor aqui da empresa, e pedi ao Marcos do suporte para dar um teste grátis a ele e ele testou e funcionou de boa. Então...

 

Se quiserem, podem pedir um teste grátis ao Ache Perto - Falar com o Marcos: Skype: ache.perto                                            

http://www.acheperto.com.br/

 

Abs.

Link to comment
Share on other sites

 

mas a pergunta que não quer calar, porque então com outra ferramenta funciona e a do fivewin parou de funcionar???

 

Não sei. O Marcelo(Marca), era a esperança de descobrir este mistério. Pois, no provedor dele, não ia o email nem a pau( O mesmo programa ) que eu testava aqui, usando o provedor da ACHE PERTO, o email chegava de boa na minha caixa de entrada e na dele. No provedor dele LOCALWEB não ia, tinha alguma coisa que bloqueava o email, tipo o firewall ou outra cousa. Lembrando que o ACHE PERTO, usa os provedores do GOOGLE( gmail ) hiper seguro e ia de boa.  Mas, agora que você entrou querido mestre ça pohha vai ser descoberta... kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk, abs.

Link to comment
Share on other sites

 

Não sei. O Marcelo(Marca), era a esperança de descobrir este mistério. Pois, no provedor dele, não ia o email nem a pau( O mesmo programa ) que eu testava aqui, usando o provedor da ACHE PERTO, o email chegava de boa na minha caixa de entrada e na dele. No provedor dele LOCALWEB não ia, tinha alguma coisa que bloqueava o email, tipo o firewall ou outra cousa. Lembrando que o ACHE PERTO, usa os provedores do GOOGLE( gmail ) hiper seguro e ia de boa.  Mas, agora que você entrou querido mestre ça pohha vai ser descoberta... kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk, abs.

Acredito q. o provedor realmente mudou alguma coisa. O complicado é saber como provar isso pra eles ? Esta é a questão já que em outras ferramentas funciona normalmente. Veja meu caso

Com  a classe SMTP não funciona mais, sendo que utilizando o Cdo / Outlook / SendMail vai na boa.

Neste caso acredito que além de alguma modificação no provedor ocorreu mais a classe SMTP em si não atende a alguma coisa.

Link to comment
Share on other sites

Uma coisa que me ocorreu e poderia ser perguntado para os provedores que não estão indo, é se eles estão baseados(hospedados) nos provedores da MICRO$OFT, pois nos provedores micro$oft realmente o xHarbour não tem conexão TLS ainda. Nem o Enrico Maria Giordano conseguiu fazer o xHarbour enviar email nos provedores micro$oft. Mas fiquei no muro, pois o Marcelo diz que envia via CDO... Mistério, misterioso. E eu estou usando a última versão do xHarbour e não vai nem a pau para provedor da micro$oft.  Abs.

Link to comment
Share on other sites

Pessoal fiz um teste manual sem usar programas, aqui no escritorio e em alguns clientes que tenho acesso rodou blz, já nestes dois clientes não.

veja como foi o teste manual

criei dois arquivo 

1) conteudo do primeiro

ftp -s:baixarvendas.txt

 

2) conteudo do segundo arquivo

open ftp.empresoft.net
nome_do_usuario
senha
prompt
cd empresoft.net/hiperfrios/remessa/002/
mget *.REM
mdel *.REM
pause

 

Obs: a conclusão que cheguei que programas estilo filezile, linguagens de programação tipo a windev, tem algum detalhe a mais, pois estes roda normal, já em fivewin ou mesmo manual não roda.

 

Abs

 

Luiz Fernando

 

 

Link to comment
Share on other sites

Testem com este exemplo do EMG.

// Exemplo do EMG - Enrico Maria Giordano
	#include "Fivewin.ch" 
	// 
// File attributes 
// 
	#define FILE_ATTRIBUTE_READONLY 1 
#define FILE_ATTRIBUTE_HIDDEN 2 
#define FILE_ATTRIBUTE_SYSTEM 4 
#define FILE_ATTRIBUTE_DIRECTORY 16 
#define FILE_ATTRIBUTE_ARCHIVE 32 
#define FILE_ATTRIBUTE_NORMAL 128 
#define FILE_ATTRIBUTE_TEMPORARY 256
	// 
// access types for InternetOpen() 
// 
	#define INTERNET_OPEN_TYPE_PRECONFIG                    0   // use registry configuration 
#define INTERNET_OPEN_TYPE_DIRECT                       1   // direct to net 
#define INTERNET_OPEN_TYPE_PROXY                        3   // via named proxy 
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  4   // prevent using java/script/INS
	// 
// manifests 
// 
	#define INTERNET_INVALID_PORT_NUMBER 0 // use the protocol-specific default 
	#define INTERNET_DEFAULT_FTP_PORT 21 // default for FTP servers 
#define INTERNET_DEFAULT_GOPHER_PORT 70 // " " gopher " 
#define INTERNET_DEFAULT_HTTP_PORT 80 // " " HTTP " 
#define INTERNET_DEFAULT_HTTPS_PORT 443 // " " HTTPS " 
#define INTERNET_DEFAULT_SOCKS_PORT 1080 // default for SOCKS firewall servers. 
	// 
// service types for InternetConnect() 
// 
	#define INTERNET_SERVICE_FTP 1 
#define INTERNET_SERVICE_GOPHER 2 
#define INTERNET_SERVICE_HTTP 3 
	// 
// flags for FTP 
// 
	#define INTERNET_FLAG_TRANSFER_ASCII 1 
#define INTERNET_FLAG_TRANSFER_BINARY 2 
	
STATIC hLib 
	FUNCTION Main()
	   LOCAL hInternet, hConnect
	   hLib = LoadLibrary( "wininet.dll" )
	   hInternet = INETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 )
	   hConnect = INETCONNECT( hInternet, "ftp address", INTERNET_INVALID_PORT_NUMBER, "userid", "password", INTERNET_SERVICE_FTP, 0, 0 )
	   ? FTPGETFILE( hConnect, "remote file", "local file", 0, FILE_ATTRIBUTE_ARCHIVE, 0, 0 )
	   // ? FTPPUTFILE( hConnect, "local file", "remote file", 0, 0 )
	   INETCLOSEHANDLE( hConnect )
	   INETCLOSEHANDLE( hInternet )
	   FREELIB32( hLib )
	RETURN NIL
	DLL32 FUNCTION INETOPEN( cAgent AS LPSTR, nAccessType AS DWORD, cProxyName AS LPSTR, cProxyBypass AS LPSTR, nFlags AS DWORD ) AS LONG; 
PASCAL FROM "InternetOpenA" LIB hLib 
	DLL32 FUNCTION INETCLOSEHANDLE( hInternet AS LONG ) AS BOOL; 
PASCAL FROM "InternetCloseHandle" LIB hLib 
	DLL32 FUNCTION INETCONNECT( hInternet AS LONG, cServerName AS LPSTR, nServerPort AS LONG, cUserName AS LPSTR, cPassword AS LPSTR, nService AS DWORD, nFlags AS DWORD, @nContext AS PTR ) AS LONG; 
PASCAL FROM "InternetConnectA" LIB hLib 
	DLL32 FUNCTION FTPGETFILE( hConnect AS LONG, cRemoteFile AS LPSTR, cNewFile AS LPSTR, nFailIfExists AS LONG, nFlagsAndAttribs AS DWORD, nFlags AS DWORD, @nContext AS PTR ) AS BOOL; 
PASCAL FROM "FtpGetFileA" LIB hLib 
	DLL32 FUNCTION FTPPUTFILE( hConnect AS LONG, cLocalFile AS LPSTR, cNewRemoteFile AS LPSTR, nFlags AS DWORD, @nContext AS PTR ) AS BOOL; 
PASCAL FROM "FtpPutFileA" LIB hLib


 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...