Como baixar arquivos da Internet com Delphi ????
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
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
Curtidas 1
Melhor post
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
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;
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
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.´);
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
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
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?
AssignFile(f, Destino);
Rewrite(f,1);
esta dando erro de ´I/O Error 32´
sabe me dizer porque?
GOSTEI 0
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
24/09/2003
Use o componente TIdHttp:
Veja se assim funciona...
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