Fórum Download com IDFTP #473224
18/03/2014
0
bom galera, to tentando fazer o download com o componente idftp da paleta indy, bom, o download até faz só que os arquivos são baixados corrompidos, o que será que acontece?se alguém já passou por isso ou sabe como resolver, aí vai o código que utilizo!
e pra chamar a função:
desde já agradeço!
function TFrmVisualiza.ftpget(dirRemotro, DirLocal, filefrom, fileto: string) : string;
var
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
try
try
ftp.Connect();
AssErt(ftp.Connected);
ftp.ChangeDir(dirRemotro); // Definir a pasta no servidor
ftp.Get(filefrom, DirLocal+fileto, true); // Receber o arquivo do servidor
ShowMessage('Arquivo Recebido');
Result := DirLocal+fileto;
finally
ms.Free;
end;
except
ShowMessage('Uma tentativa de receber um arquivo do servidor com falha');
end;e pra chamar a função:
ftpget(CaminhoServidor,CaminhoLocal, listaFile.Items[listaFile.ItemIndex], 'Temp'+listaFile.Items[listaFile.ItemIndex])
desde já agradeço!
Ivan Alves
Curtir tópico
+ 0
Responder
Posts
24/03/2014
Paulo Pinto
eu faço em http... se te ajudar..
pb é um progressbar
OnWork := IdHTTP1Work;
OnWorkBegin := IdHTTP1WorkBegin;
OnWorkEnd := IdHTTP1WorkEnd;
procedure TFLogin.BaixaNovaVersao(LinkVersao, Nome: String);
var
Pasta, Arquivo: String;
IdHTTP1: TIdHTTP;
Stream: TMemoryStream;
begin
Pasta := ExtractFilePath(ParamStr(0)) + 'Atualizacoes\';
Arquivo := ExtractFileName(ParamStr(0));
if not DirectoryExists(Pasta) then
MkDir(Pasta);
IdHTTP1 := TIdHTTP.Create(nil);
Stream := TMemoryStream.Create;
try
pb.Visible := True;
Application.ProcessMessages;
with IdHTTP1 do
begin
OnWork := IdHTTP1Work;
OnWorkBegin := IdHTTP1WorkBegin;
OnWorkEnd := IdHTTP1WorkEnd;
try
AtualizacaoemAndamento := True;
Get(LinkVersao, Stream);
Stream.SaveToFile(Pasta + Arquivo); // salva o arquivo no hd
InstalaNovaVersao(Pasta + Arquivo);
except
on e: exception do
MessageBoxError(e.Message);
end;
end;
finally
AtualizacaoemAndamento := False;
IdHTTP1.Free;
pb.Visible := False;
end;
end;pb é um progressbar
OnWork := IdHTTP1Work;
OnWorkBegin := IdHTTP1WorkBegin;
OnWorkEnd := IdHTTP1WorkEnd;
Responder
Gostei + 0
25/03/2014
Ivan Alves
Paulo Alexandre, muito obrigado cara pela ajuda, vou testar dessa forma que vc faz, mais acabei atualizando a versão do indy e meus problemas foram resolvidos, devia ser algum bug, pq os arquivos eram upados com erro, bom, de qualquer forma obrigado pela atenção! Abraços
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)