oFtp:UploadFile() nao envia PDF

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á

oFtp:UploadFile() nao envia PDF

Mensagem por juniorcamilo »

Amigos !
com uma rotina de ftp do forum fiz diversas aplicação(upload e download) em meu sistema usando txt e exe!!
tetando enviar os pdf (nesse caso levar os boletos pra ser distribuído pelo sistema aos Clientes)
o oFtp:UploadFile() retorna .f.!! tem alguma coisa haver com certificado de segurança!?!?!?
usando o filezila ele pede confirmação de certificado!!
tem algum metodo em oftp para ser configurado nesse caso?
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á

oFtp:UploadFile() nao envia PDF

Mensagem por juniorcamilo »

desculpe amigos!!! achei o problema!! era minha rotina!!!
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

oFtp:UploadFile() nao envia PDF

Mensagem por rubens »

Boa tarde...

Estou estudando isso...
Se não for pedir muito poderia postar a rotina de upar/baixar ?

Obrigado
"Eu e minha casa servimos ao Senhor e você ???"
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á

oFtp:UploadFile() nao envia PDF

Mensagem por juniorcamilo »

rubens escreveu:Boa tarde...

Estou estudando isso...
Se não for pedir muito poderia postar a rotina de upar/baixar ?

Obrigado

Código: Selecionar todos

#include "fileio.ch"
#include "common.ch"
#include "Directry.ch"


FUNCTION UP(cArquivo,cPasta,cFtpServer,nPorta,cUsuario,cPass,bIdentico,cCaminhoArquivo)
Local cUrl, oUrl, oFTP, aFile, aArquivo, aArqAux := {}, nCont := 1, aErro := {}
if bIdentico == nil; bIdentico := .t.; endif
if cCaminhoArquivo == nil; cCaminhoArquivo := ""; endif
//IF oFTP:DELE('/'+FTPDIR+'/'+ARQFTP) ; EXIT ; ELSE ; LOOP ; ENDIF
 	if Valtype(cArquivo) == "A"
		for nCont = 1 to len(cArquivo)
		    cArquivo[nCont] := alltrim(cArquivo[nCont])
		    if File(cCaminhoArquivo+cArquivo[nCont])
		    	 aadd(aArqAux, cArquivo[nCont])
		    endif
		next
	elseif Valtype(cArquivo) == "C"
		cArquivo    := alltrim(cArquivo)
		aadd(aArqAux, cArquivo)
		if File(cCaminhoArquivo+aArqAux[nCont])
			aadd(aArqAux, cArquivo)
		endif
	else
	   mouse(.f.)
	   @ 23,00 say padc("Arquivo nao e char e nem array",80)
	   inkey(5)
	   return .f.
	endif
  	if len(aArqAux) <= 0
		mouse(.f.)
	   @ 23,00 say padc("Nao encontrou o Arquivo!! ",80)
	   inkey(5)
    	mouse(.t.)
		return .f.
	endif
	cPasta      := alltrim(cPasta)
   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 padc("Abrindo conex„o com o FTP.....Aguarde!!!",80)
   IF oFTP:Open( cUrl )
      IF !oFTP:Cwd(cPasta)  // se não achar o diretorio ele cria
         mouse(.f.)
	   	@ 23,00 say padc("Criando pasta ("+cPasta+")",80)
	   	inkey(5)
     		mouse(.t.)
         oFTP:Mkd(cPasta)  // cria o diretorio
      ENDIF
      oFTP:Cwd(cPasta)  // informe o diretorio (no servidor ftp) onde está o arquivo versao.txt
      If !empty(oFTP:List()) .and. Len(aArqAux) > 0 .and. !empty(aArqAux[1])&& verificar c nao sao identicos
         for nCont = 1 to len(aArqAux)
             cArquivo  := aArqAux[nCont]
       		 aArquivo  := oFTP:ListFiles(cArquivo)
       		 aFile     := directory(cCaminhoArquivo+cArquivo)
         	 if Len(aFile) # 0 .and. Len(aArquivo) # 0&& verificar c arquivo ja foi baixado
            	 if aArquivo[1,2] == aFile[1,2] .and. bIdentico == .t.
          			 mouse(.f.)
			   		 @ 23,00 say padc("Arquivo identico!!!",cPasta+cArquivo,80)
	   				 inkey(5)
         			 mouse(.t.)
						 nCont++
						 loop
					 endif
         	 endif
	          nTAMANHO 	  := 0
	       	 aDir0    	  := directory(cCaminhoArquivo+cArquivo)
   		    nTAMANHO 	  := aDir0[1,2]
      	    oFtp:exGauge  := {|nPronto| FtpProgress(nPronto,nTamanho) }
	          if oFtp:UploadFile( cCaminhoArquivo+cArquivo, cPasta + '/' + cArquivo ) = .f.
                mouse(.f.)
	   	       @ 23,00 say padc("N„o é possivel enviar o arquivo ("+cCaminhoArquivo+cArquivo+")",80)
	   	       aadd(aErro, "N„o é possivel enviar o arquivo ("+cCaminhoArquivo+cArquivo+")")
	   	       inkey(5)
                mouse(.t.)
             endif
          next
      endif
      oFTP:CWD( ".." )
      Millisec(1000)
      oFTP:Close()
      if Len(aErro) > 0
         Return .f.
      endif
   ELSE
      Return .f.
   ENDIF
RETURN .T.
// =============================================================================
Function Do(cArquivo,cPasta,cFtpServer,nPorta,cUsuario,cPass,cPastaDownload,bIdentico) // Realiza download de atualização via ftp
Local cUrl, oUrl, oFTP, oCred, cList, bRet, aArquivo, nTamanho , aFile
if cPastaDownload == nil; cPastaDownload := CLTEMP; endif
if bIdentico == nil; bIdentico := .t.; endif
cUrl:="ftp://"+cUsuario+":"+cPass+"@"+cftpserver // url ftp
oUrl:= turl():new(curl)
oCred:= tIPCredentials()
oFtp:= tipclientftp():NEW(oUrl,,.T.)
oFTP:nConnTimeout := 20000
oFTP:bUsePasv  := .T.
		@ 23,00 say padc("Abrindo conexao com o FTP.....Aguarde!!!",80)
      If oFTP:Open() // Abre conexão ftp
         oFTP:Cwd(cPasta)  // informe o diretorio (no servidor ftp) onde está o arquivo versao.txt
         If !empty(oFTP:List())
         	aArquivo     := oFTP:ListFiles(cArquivo)
				if Len(aArquivo) == 0
				   oFTP:Close() // -> encerra conexão com servidor ftp
       			mouse(.f.)
					@ 23,00 say padc("Error não localizou arquivo!",cPasta+cArquivo,80)
	   			inkey(5)
         		mouse(.t.)
         		return .f.
         	endif
            aFile     := directory(cPastaDownload+cArquivo)
            if Len(aFile) # 0 .and. Len(aArquivo) # 0&& verificar c arquivo ja foi baixado
               if aArquivo[1,2] == aFile[1,2] .and. bIdentico == .t.
      				oFTP:Close() // -> encerra conexão com servidor ftp
       				mouse(.f.)
						@ 23,00 say padc("Arquivo identico!!!",cPasta+cArquivo,80)
	   				inkey(5)
         			mouse(.t.)
         			return .t.
					endif
            endif
            ApagaArq(cPastaDownload+cArquivo)
            nTamanho     := aArquivo[1,2]
            oFtp:exGauge := {|nPronto| FtpProgress(nPronto,nTamanho) }
            bRet         := oFtp:DownLoadFile(cPastaDownload+cArquivo,cPasta+cArquivo) // baixa o arquivo versão.txt existente na pasta update no servidor ftp
            If !file(cPastaDownload+cArquivo)       // se exister o arquivo,
               oFTP:Close() // -> encerra conexão com servidor ftp
               mouse(.f.)
	   			@ 23,00 say padc("Erro: Arquivo "+cPasta+cArquivo+" não encontrado!",80)
	   			inkey(5)
               mouse(.t.)
               return .f.
            EndIf
            oFTP:Close() // -> encerra conexão com servidor ftp
         EndIf
      Else
         mouse(.f.)
	   	@ 23,00 say padc("Error ao tentar conectar no servidor de atualização, por favor verifique sua conexção com a internet!",80)
	   	inkey(5)
         mouse(.t.)
         return .f.
      EndIf
Return .t.
//******************************************************
FUNCTION FtpProgress( nSent, nTotal, oFtp )
LOCAL cProgress
LOCAL nRow := 23, nCol := 00
cProgress:= STR((nSent/nTotal)*100,4)+"%"
@ nRow, nCol say padc("Comunicando..." + cProgress,80)
SetPos( MaxRow()-1, 0 )
SetPos( nRow, nCol )
RETURN .T.
//**********************************************
essa função esta no forum, só não lembro onde peguei!! mas esta ai, mastigadinho!!!
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

oFtp:UploadFile() nao envia PDF

Mensagem por rubens »

:-Y :-Y :-Y
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

oFtp:UploadFile() nao envia PDF

Mensagem por JoséQuintas »

Junior camilo.. sugestão, mas que talvez seja fonte antigo e já tenha feito....

Código: Selecionar todos

      mouse(.f.)
      @ 23,00 say padc("Nao encontrou o Arquivo!! ",80)
      inkey(5)
       mouse(.t.)
Se usa sempre a mesma linha pra mensagem, e sempre usa isso do mouse....
Vai reduzir/simplificar se usar parecido com o que eu uso, por exemplo:

Código: Selecionar todos

MsgPausa( "Não encontrou o arquivo", 5 )

FUNCTION MsgPausa( cTexto, nPausa )
   Mouse(.F.)
   @ 23, 0 SAY Padc( cTexto, 80 )
   Inkey( nPausa )
   Mouse(.T.)
   RETURN NIL
De quebra, ainda pode usar MaxRow() e MaxCol() pra mensagem se ajustar automaticamente ao tamanho da tela.

Apenas sugestão.
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/
Responder