DOSUG CZ– розовая кнопка на сайте!
Logo

Качаем файл из Internet
(Delphi)

   Если ваша программа содержит подключаемые модули (BPL или DLL) или есть необходимость обновлять саму программу, то наверняка стояла проблема обновления копий программы. С развитием Internet появилась прекрасная возможность сделать это быстро и красиво. В данной статье мы расскажем, как добавить опцию автообновления программ из Internet.
   Delphi дает нам полный доступ к API WinInet (wininet.pas), что позволяет подключиться и скачать любой файл с указанного вебсайта, используя протоколы FTP или HTTP. Например, мы можем использовать функции API WinInet для создания FTP-браузера или программы для поиска на публичных FTP-серверах заданных файлов.
   Основная функция нашей программы - GetInetFile:

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;

   Замечание: конечно, этот пример нужно расширить, вставив, например, код для отображения прогресса скачивания в цикл.
   Использовать функцию GetInetFile очень просто:

var FileOnNet, LocalFileName: string
begin
   FileOnNet:='http://src.fitkursk.ru/articles/mp3player.zip';
   LocalFileName:='MyFile.zip';

   if GetInetFile(FileOnNet,LocalFileName)=True then
      ShowMessage('Download successful')
   else
      ShowMessage('Error in file download')

end;

   Этот кусок кода скачивает файл с именем mp3player.zip, находящийся по адресу 'http://src.fitkursk.ru/articles/' и записывает его в текущий каталог под именем 'MyFile.zip'. Все очень просто.

 

главная - о проекте - контакты - реклама на сайте
 
LBN100 Elite

SoftStudio.Ru - студия разработки программ
LBN100 Elite