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: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
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, 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/
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/
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: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
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, 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/
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/
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 48 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: 7131
- 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

