Fórum IdFtp - como Parar e Retomar download? #353645
14/02/2008
0
A aplicação funciona perfeitamente, porém necessito criar um tipo de Resume e Pause para o download.
Ex: se o arquivo for um 20 Mb e este com o progresso de 95¬ e a conexão do cliente cair, o mesmo perderá o download, se eu criar um tipo de segurança com Resume e Pause como exemplo posso retomar o downloa de onde parado.
Alguem fez algo parecido?
:)
Rodrigoprado
Curtir tópico
+ 0Posts
14/02/2008
Massuda
procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean); overload; procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: boolean; AResume: Boolean); overload;
Gostei + 0
14/02/2008
Rodrigoprado
isso ja havia tentado, mas valeu..
Gostei + 0
14/02/2008
Massuda
De qualquer forma, se quiser, mostre o código que você está usando.
Outra coisa... Você está usando o Indy que veio com seu Delphi ou você atualizou ele (versão 9.0.18 ou mais recente)?
Gostei + 0
14/02/2008
Paullsoftware
Gostei + 0
14/02/2008
Rodrigoprado
IdFTP.CanResume é True
ResumeSupported é True
depois de conectado logicamente meu servidor permite copiar.
partindo pela lógica de que o arquivo nao exista no meu destino ainda.
FrmAtualiza.IdFTP.get(arquivo, diretorio, False, True);
uso este método
e paro em 1¬ com o abort.
e para retomar nao ha meios.. ja everti os método para tentar retomar
(arquivo, diretorio, True, True);
(arquivo, diretorio, False, False);
(arquivo, diretorio, False, True);
(arquivo, diretorio, True, False);
supondo que o arquivo tenha 20 mb e parei 1¬ em 512 kb, o mesmo ja deva existir.. no destino logo nao posso sobreescrevelo e sim continuar.
bom talves eu tenha iniciado o get errado ou ao contrário.
Massuda acho que so testando mesmo para termos certeza das propriedades...
quando descobrirmos isso servirar para muitas outras coisas...
:o
Gostei + 0
15/02/2008
Weber
Talvez seu servidor de internet não de suporte a isto, ja tentou usar um programa de ftp para verificar se o mesmo faz o resume.
Gostei + 0
15/02/2008
Rodrigoprado
o evento exemplificando qundo inicia o download, ai em seguida quando para e quando reinicia.
vlw
estou testando por localhost, concerteza fiz algo errado, mas nao consego ver onde.
Gostei + 0
15/02/2008
Rodrigoprado
IdFTP.get(arquivo, diretorio, False, IdFTP.ResumeSupported);
Parar:
IdFTP.Abort;
Reiniciar:
IdFTP.get(arquivo, diretorio, False, IdFTP.ResumeSupported);
É assim que estou utilizando... bom se alguem souber ai o fato eh que nao tenho certeza se o comando de reiniciar eh assim.
Meu servidor permite retormar download.
Gostei + 0
15/02/2008
Weber
procedure TForm1.Button1Click(Sender: TObject); begin if not IdFTP1.Connected then IdFTP1.Connect; IdFTP1.Get(´arquivo´,´c:\temp\arquivo´,false,true); end; procedure TForm1.Button3Click(Sender: TObject); begin IdFTP1.Abort; end;
O servidor tem suporte à resume?
Você diz estar usando localhost, seu servidor FTP local tem suporte à resume?
Gostei + 0
15/02/2008
Rodrigoprado
após conectado eu verifico pelas propriedades
idFTP.CanResume
idFTP.ResumeSupported
as mesmas retornam True;
enfim, partindo desta sua idéia
INICIAR -> IdFTP1.Get(´arquivo´,´c:\temp\arquivo´,false,true);
ABORTAR -> IdFTP1.Abort;
e para REINICIAR seria este mesmo método?
IdFTP1.Get(´arquivo´,´c:\temp\arquivo´,false,true);
Gostei + 0
15/02/2008
Rodrigoprado
ambos tem suporte.
Gostei + 0
15/02/2008
Paullsoftware
quando digito ftp://localhost
eu vejo normal o site, mais sempre que tento conectar com o IdFtp pra testar umas rotinas de atualização não consigo, sempre da erro de conexão... pode me ajudar? 8)
Gostei + 0
15/02/2008
Rodrigoprado
então corri a traz de outro cliente.
vc cria um perfil e em seguida escolhe os diretórios para compartilhar ai funciona na boa, para localhost ou 127.0.0.1.
ou vc pode tentar o apache, infalivel hehe
pow cara to com meu Idftp funcionando mas essa parte de start e pause download.. nao vai velho.......... que droga.. :(
Gostei + 0
15/02/2008
Rodrigoprado
ftp://ip/
Gostei + 0
15/02/2008
Paullsoftware
ou vc pode tentar o apache, infalivel hehe
quote]é o apache não dá... tem que ser o IIS mesmo, pois, tenho um Servidor de Aplicação SOAP rodando no servidor e já ta tudo configuradinho e funcionando no IIS... valeu pela dica
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)