Консультация № 55002
11.09.2006, 10:51
0.00 руб.
0 2 2
Как можно скачать файл из интернета в delphi 7? Н-р с помощью TIdHTTP

Обсуждение

Неизвестный
11.09.2006, 11:47
общий
это ответ
procedure TForm1.Button3Click(Sender: TObject);
var
fs:TFileStream;
IdHTTP: TIdHTTP;
begin
IdHTTP := TIdHTTP.Create(Self);
with IdHTTP do
begin
Name := ‘IdHTTP‘;
AllowCookies := True;
ProxyParams.BasicAuthentication := False;
//настройка прокси если надо
// ProxyParams.ProxyServer:=‘proxy‘;
// ProxyParams.ProxyPort:=8080;
Request.ContentLength := -1;
Request.Accept := ‘text/html, */*‘;
Request.BasicAuthentication := False;
Request.UserAgent := ‘Mozilla/3.0 (compatible; Indy Library)‘;
HTTPOptions := [hoForceEncodeParams];
end;
fs:=TFileStream.Create(‘C:\test.html‘,fmCreate);
try
IdHTTP.Get(‘http://www.yandex.ru/‘,fs);
finally
fs.Free;
end;
end;
Неизвестный
11.09.2006, 14:36
общий
это ответ
Здравствуйте, Томша Павел!
Можно и без компонентов Indy. Посмотрите статьи на www.delphiworld.narod.ru в разделе Интернет и сети\Файлы и Интернет. Один из примеров в приложении.

Приложение:
uses Wininet;function GetInetFile(const fileURL, FileName: 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(fileURL), nil, 0, 0, 0); try AssignFile(f, FileName); 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;//ispol‘zovanievar FileOnNet, LocalFileName: stringbegin FileOnNet := ‘http://its_your_site.ru/library/DelphiWorld.zip‘; LocalFileName := ‘C:\DelphiWorld.zip‘; if GetInetFile(FileOnNet, LocalFileName) = True then ShowMessage(‘Download successful‘) else ShowMessage(‘Error in file download‘);end;
Форма ответа