Нужно вытянуть некоторый файл из интернета.. размер порядка 2х мб... в принципе файл может и не большой но для дайл апа не малый размер, учитывая, что связь может сбрасываться и т.д.
Какими средствами при МИНИМАЛЬНОМ объеме программы (экзэшника) вытягивать этот файл? (файл не текстовой прийдется вытягивать как-то через бинарное открытие чтоль)
как этот процесс можно организовать? в какую сторону смотреть? напрямую ведь не прочитаешь файл открыв его как файл http://test.site/file.rar
Что может помочь в данной ситуации? (по фтп доступиться к сайту нет возможности)
volvo
4.08.2005 23:09
В DRKB есть пример:
Цитата(DRKB)
Пример HTTP Get - загружаем файлы и страницы из Интернета
Качай и читай ;)
BlackNightFear
5.08.2005 1:38
ого, лихо! а попроще никак?
volvo
5.08.2005 2:17
program i_n;
{$APPTYPE CONSOLE}uses
SysUtils, winInet;
procedure DownloadFile(const url: string; const savefile : String);
var
NetHandle : HINTERNET;
UrlHandle : HINTERNET;
Buffer : packedarray [0..1023] of byte;
BytesRead : Cardinal;
f : file;
begin
NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
if Assigned(NetHandle) thenbegin
UrlHandle := InternetOpenUrl (NetHandle, PChar(url), nil, 0,
INTERNET_FLAG_RELOAD, 0);
if Assigned (UrlHandle)
thenbegin
AssignFile (f, savefile);
ReWrite (f, 1);
InternetReadFile (UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
while BytesRead <> 0dobegin
BlockWrite (f, Buffer, BytesRead);
InternetReadFile (UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
end;
InternetCloseHandle(UrlHandle);
CloseFile (f);
endelsebeginraise Exception.CreateFmt ('Cannot open URL %s', [Url]);
end;
InternetCloseHandle(NetHandle);
endelseraise Exception.Create ('Unable to initialize Wininet');
end;
begin
DownloadFile('http://volvo1971.nm.ru/pics/gist_2.png', 'C:\gist_2.png');
end.
Так достаточно просто?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.