Barra de progresso de download com TIPClientFTP
Moderador: Moderadores
Barra de progresso de download com TIPClientFTP
Pessoal,
Tem algum exemplo de barra de progresso de download com TIPClientFTP() ?
Tem algum exemplo de barra de progresso de download com TIPClientFTP() ?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20420
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Barra de progresso de download com TIPClientFTP
Download e upload, incluindo previsão de horário.
Agora que percebi...
Em inglês deveria ser com ph... rs
http://www.harbourdoc.com.br/show.asp?s ... GrafTime()
Código: Selecionar todos
FUNCTION DownloadJpa( cSource, cTarget, Tamanho )
LOCAL cRemotePath, cServer, cUser, cPassword, cUrl, cMsgErro
LOCAL oUrl, oFtp, aFiles, lRetorno
hb_Default( @Tamanho, 0 )
cRemotePath := ""
IF "/" $ cSource
cRemotePath := Substr( cSource, 1, Rat( "/", cSource ) - 1 )
cSource := Substr( cSource, Rat( "/", cSource ) + 1 )
ENDIF
cServer := "ftp.xxx.com.br"
cUser := "xxxx"
cPassword := SenhaFtp()
cUrl := "ftp://" + cUser + ":" + cPassword + "@" + cServer
oUrl := tUrl():New( cUrl )
oFtp := TIPClientFtp():New( oUrl, .F. )
oFtp:nConnTimeOut := 10000
oFtp:bUsePasv := .T.
oFtp:oUrl:cServer := cServer
oFtp:oUrl:cUserId := cUser
oFtp:oUrl:cPassword := cPassword
lRetorno := .F.
IF oFtp:Open( cUrl )
oFtp:Cwd( cRemotePath )
IF Tamanho == 0
aFiles := oFtp:ListFiles( cSource )
IF Len( aFiles ) > 0
Tamanho := aFiles[ 1, 2 ]
ENDIF
IF Tamanho == 0
SayScroll( "Não encontrada informação, tentando sem a informação!",, .T. )
Tamanho := 2000000 // apenas pro grafico
ENDIF
ENDIF
oFtp:exGauge := { | Pronto | GrafTempo( Pronto, Tamanho ) }
GrafTempo( "Baixando " + cSource )
IF oFtp:DownloadFile( cTarget, cSource )
lRetorno := .T.
ENDIF
oFtp:Close()
ELSE
cMsgErro := "Nao conectou ao servidor"
IF oFtp:SocketCon == NIL
cMsgErro += ", conexão nao iniciada"
ELSEIF hb_INetErrorCode( oFtp:SocketCon ) == 0
cMsgErro += ", resposta do servidor " + oFtp:cReply
ELSE
cMsgErro += ", erro na conexão " + hb_InetErrorDesc( oFtp:SocketCon )
ENDIF
SayScroll( cMsgErro,, .T. )
lRetorno := .F.
ENDIF
Mensagem()
RETURN lRetorno
FUNCTION UploadJPA( cSource, cTarget, cUser )
LOCAL cRemotePath, cMsgErro, lRetorno, Tamanho, oFtp, cServer, cPassword, cUrl, oUrl
hb_Default( @cUser, "xxx" )
cRemotePath := ""
IF "/" $ cTarget
cRemotePath := Substr( cTarget, 1, Rat( "/", cTarget ) - 1 )
cTarget := Substr( cTarget, Rat( "/", cTarget ) + 1 )
ENDIF
cServer := "ftp.xxxx.com.br"
cUser := "xxx"
cPassword := SenhaFtp()
cUrl := "ftp://" + cUser + ":" + cPassword + "@" + cServer
oUrl := tUrl():New( cUrl )
oFTP := tIPClientFtp():New( oUrl, .F. )
oFTP:nConnTimeout := 20000
oFTP:bUsePasv := .T.
IF At( "@", cUser ) > 0
oFTP:oUrl:cServer := cServer
oFTP:oUrl:cUserID := cUser
oFTP:oUrl:cPassword := cPassword
ENDIF
lRetorno := .F.
IF oFTP:Open( cUrl )
IF .NOT. Empty( cRemotePath )
oFtp:Cwd( cRemotePath )
ENDIF
Tamanho := fSize( cSource )
oFtp:exGauge := { | Pronto | GrafTempo( Pronto, Tamanho ) }
GrafTempo( "Enviando " + cSource )
IF oFtp:UploadFile( cSource, cTarget )
lRetorno := .T.
ENDIF
oFtp:Close()
ELSE
cMsgErro := "Não conectado ao servidor FTP"
IF oFTP:SocketCon == NIL
cMsgErro += ", conexão não inicializada"
ELSEIF hb_InetErrorCode( oFTP:SocketCon ) == 0
cMsgErro += ", resposta do servidor: " + oFTP:cReply
ELSE
cMsgErro += ", erro na conexão: "+ hb_InetErrorDesc( oFTP:SocketCon )
ENDIF
SayScroll( cMsgErro )
ENDIF
Mensagem()
RETURN lRetorno
Em inglês deveria ser com ph... rs
http://www.harbourdoc.com.br/show.asp?s ... GrafTime()
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/
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/
Barra de progresso de download com TIPClientFTP
Quintas,
Obrigado pela dica,
Eu assinei o kinghost, estou tentando subir um arquivo com 60mb, só que na metade ou menos que isso para o upload, seria o timeout ou limitação de tamanho?
Obrigado pela dica,
Eu assinei o kinghost, estou tentando subir um arquivo com 60mb, só que na metade ou menos que isso para o upload, seria o timeout ou limitação de tamanho?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Barra de progresso de download com TIPClientFTP
Acho que descobri.
nConnTimeout estava com 2000 passe para 20000
oFTP:nConnTimeout :=2000
nConnTimeout estava com 2000 passe para 20000
oFTP:nConnTimeout :=2000
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Barra de progresso de download com TIPClientFTP
Tem como saber o tamanho de um arquivo no ftp antes de baixar?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Barra de progresso de download com TIPClientFTP
No ftp tem o método Size
Que não está implementado no TIPClientFTP
Link: https://en.wikipedia.org/wiki/List_of_FTP_commands
Que não está implementado no TIPClientFTP
Link: https://en.wikipedia.org/wiki/List_of_FTP_commands
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20420
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Barra de progresso de download com TIPClientFTP
Antigamente eu tinha função separada, mas atualmente não.
Olhe novamente as rotinas que vai ver o uso pra pegar o tamanho.
Sobre o kinghost, só pra lembrar, quando subi o harbour com msvc foi uns 100mb.
E o backup de meu cliente que vai pra lá... dá isso por dia.
Lembre-se que dá pra usar o explorer como cliente ftp também.
Olhe novamente as rotinas que vai ver o uso pra pegar o tamanho.
Sobre o kinghost, só pra lembrar, quando subi o harbour com msvc foi uns 100mb.
E o backup de meu cliente que vai pra lá... dá isso por dia.
Lembre-se que dá pra usar o explorer como cliente ftp também.
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/
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/
Barra de progresso de download com TIPClientFTP
Tem um tópico sobre isto aki no fórum não me lembro qual, mas sei q usei ele pra colocar a função em PHP no servidor e ai vc chama ela pelo teu sistema e ela retorna o tamanho do arquivo etc..
Acho q foi o Leonardo q compartilhou...
segue...
Segue em anexo arquivo PHP
Acho q foi o Leonardo q compartilhou...
segue...
Código: Selecionar todos
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
function HTTP_PegaTamArq( cCaminho, cArq )
* retorna o tamanho de 1 arquivo existente no site q tem o c¢digo em PHP
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
LOCAL oHTTP, cURL, nRET_BYTES := 0
LOCAL cHTML
if cArq == NIL
Return nRET_BYTES
elseif Empty( cArq )
Return nRET_BYTES
endif
cCaminho := if( cCaminho == NIL, "pastadatuahospedagem/podeseroutrapastaaki/", cCaminho)
cURL := 'http://www.teudominio.com.br/tamanhoArquivo.php?caminho=' + cCaminho + cArq
oHTTP:= TIpClientHttp():new( cURL )
if oHTTP:open()
cHTML := oHTTP:readAll()
if !EMPTY(cHTML)
if LEN(cHTML) > 0 .AND. LEN(cHTML) < 20
nRET_BYTES:=VAL(alltrim(cHTML)) //Alert('Tamanho:' + str(nRET_BYTES) )
endif
endif
endif
oHTTP:close()
return nRET_BYTES- Anexos
-
tamanhoArquivo.txt- Arquivo PHP utilizado na rotina (renomeie pra PHP)
- (312 Bytes) Baixado 51 vezes
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Barra de progresso de download com TIPClientFTP
Caros colegas,
Sempre usei esta TIPClient, funcionando perfeitamente.
Recentemente, contudo, venho recebendo um "Error BASE/1340 Divisão por zero: /" da oFtp: UploadFile(), sem que eu tenha feito qualquer alteração no meu sistema.
Alguém saberia me dizer a razão deste erro, e como resolvê-la?
Inacio
Sempre usei esta TIPClient, funcionando perfeitamente.
Recentemente, contudo, venho recebendo um "Error BASE/1340 Divisão por zero: /" da oFtp: UploadFile(), sem que eu tenha feito qualquer alteração no meu sistema.
Alguém saberia me dizer a razão deste erro, e como resolvê-la?
Inacio
Inacio de Carvalho Neto
- sygecom
- Administrador

- Mensagens: 7135
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Barra de progresso de download com TIPClientFTP
Inacio,
Você usa xharbour ou Harbour ? pode ser algum bug na lib TIP
Você usa xharbour ou Harbour ? pode ser algum bug na lib TIP
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql

