Como baixar arquivos da Internet com Delphi ????

Delphi

24/09/2003

Bom dia amigos... :oops:

Bem, estou desenvolvendo um sistema onde eu preciso via delphi baixar um arquivo com extensao : *.TXT que se encontra em um provedor de hospedagem e gostaria de saber se alguem poderia me ajudar ou até mesmo se alguem tiver um exemplo basico somente para que eu possa concluir este módulo.

Eu estou tentando com os componentes INDY mas ainda não obtive sucesso...

Neste caso eu terei um botao que ao dispara-lo ele por traz da aplicação vai buscar este TXT na internet e copia-lo para uma pasta parametrizada.

Se alguem puder me ajudar com algum material ficarei muito agradecido.

Obrigado,

Everson


Everson

Everson

Curtidas 1

Melhor post

E_gama

E_gama

24/09/2003

implementation

{$R *.dfm}

uses WinInet; //-->>> IMPORTANTE

function DownloadArquivo(const Origem, Destino: String): Boolean;
const BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: File;
  sAppName: string;
begin
 Result   := False;
 sAppName := ExtractFileName(Application.ExeName);
 hSession := InternetOpen(PChar(sAppName),
                INTERNET_OPEN_TYPE_PRECONFIG,
               nil, nil, 0);
 try
  hURL := InternetOpenURL(hSession,
            PChar(Origem),
            nil,0,0,0);
  try
   AssignFile(f, Destino);
   Rewrite(f,1);
   repeat
    InternetReadFile(hURL, @Buffer,
                     SizeOf(Buffer), BufferLen);
    BlockWrite(f, Buffer, BufferLen)
   until BufferLen = 0;
   CloseFile(f);
   Result:=True;
  finally
   InternetCloseHandle(hURL)
  end
 finally
  InternetCloseHandle(hSession)
 end
end;

procedure TForm1.Button1Click(Sender: TObject);
var Origem, Destino: string;
begin
 Origem  := ´http://www.salesiano.com.br/egama/3OF9.TTF´;
 Destino := ´e:\tmp\3OF9.TTF´;

 if DownloadArquivo(Origem, Destino) then
    ShowMessage(´Download OK´)
 else
    ShowMessage(´Erro no download´)
end;



GOSTEI 1

Mais Respostas

Mandachuva

Mandachuva

24/09/2003

//Baixa um arquivo via HTTP

procedure TForm1.Button1Click(Sender: TObject);
var ARQ:TFIleStream;
NomeDoArq:STRING;
begin
NomeDoArq:=´C:\BAU\BancoOO.zip´;
try
ARQ:=TFILESTREAM.Create(NomeDoArq,fmCreate OR fmShareExclusive);
idHTTP1.Get(´http://www.clubedelphi.com.br/apostilas/´+EXTRACTFILENAME(NomeDoArq),ARQ);
finally
ARQ.Free;
end;
end;


GOSTEI 1
Adriano Santos

Adriano Santos

24/09/2003

[b:8fc4ecb613]uses
UrlMon;[/b:8fc4ecb613]

function DownloadFile(Source, Dest: string): Boolean;
begin
try
Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0;
except
Result:= False;
end;
end;

Ex.:

if DownloadFile (´http://www.onde.com/arq.htm´,´c:\arq.htm´) then
ShowMessage(´Download Concluído.´);


GOSTEI 1
Analyst

Analyst

24/09/2003

[b:33f5b49870]uses UrlMon;[/b:33f5b49870] function DownloadFile(Source, Dest: string): Boolean; begin try Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0; except Result:= False; end; end; Ex.: if DownloadFile (´http://www.onde.com/arq.htm´,´c:\arq.htm´) then ShowMessage(´Download Concluído.´);


[b:33f5b49870][u:33f5b49870]Caro amigo eu fiz o que você sugeriu, mas tem algo estranho!!
Eu mudei o endereço da internet (origem), e não é que a funçào está retornando TRUE....ai eu deletei o arquivo do endereço de origem e ela voltou a retornar True...

O que poderia estar faltando, todas as dicas nesse forum estão assim

Me ajude galera[/u:33f5b49870][/b:33f5b49870]


GOSTEI 1
Dcpleal

Dcpleal

24/09/2003

porque esta fazendo isso?

AssignFile(f, Destino);
Rewrite(f,1);


esta dando erro de ´I/O Error 32´

sabe me dizer porque?


GOSTEI 0
Martins

Martins

24/09/2003

[quote:0f7174f709=´Skyhawk´][b:0f7174f709]uses UrlMon;[/b:0f7174f709] function DownloadFile(Source, Dest: string): Boolean; begin try Result:= UrlDownloadToFile(nil, PChar(source),PChar(Dest), 0, nil) = 0; except Result:= False; end; end; Ex.: if DownloadFile (´http://www.onde.com/arq.htm´,´c:\arq.htm´) then ShowMessage(´Download Concluído.´);


[b:0f7174f709][u:0f7174f709]Caro amigo eu fiz o que você sugeriu, mas tem algo estranho!!
Eu mudei o endereço da internet (origem), e não é que a funçào está retornando TRUE....ai eu deletei o arquivo do endereço de origem e ela voltou a retornar True...

O que poderia estar faltando, todas as dicas nesse forum estão assim

Me ajude galera[/u:0f7174f709][/b:0f7174f709][/quote:0f7174f709]

por favor reveja seu código, pode ter algum erro nele, ou então veja o link abaixo:

[url]http://forum.clubedelphi.net/viewtopic.php?t=66880[/url]


Boa Sorte!!!!


GOSTEI 0
G1b4

G1b4

24/09/2003

Use o componente TIdHttp:
procedure TForm1.Button1Click(Sender: TObject);
var
  vArquivo: TFileStream;
begin
  vArquivo := TFileStream.Create(´c:\arquivo.txt´,fmCreate);
  Try
     Try
       idHTTP1.Get(´http://www.site.com.br/arquivo.txt´,vArquivo);
     Except
       ShowMessage(´Não foi possivel baixar o arquivo !´);
     End;
  Finally
     FreeAndNil(vArquivo);
  End;
end;


Veja se assim funciona...


GOSTEI 0
POSTAR