Суббота, 18.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Нашли свой исходник?
Всего ответов: 94
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Сеть-интернет » Разные

Качаем файл из Internet

Если ваша программа содержит подключаемые модули (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'. Все очень просто.

Получить ссылку на материал

Категория: Разные | Добавил: Барон (14.12.2011)
Просмотров: 669 | Теги: Internet, файл | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
Web-приложения [6]
Почта [12]
Работа с HTTP [4]
Робота с XML [4]
Сервер [3]
Разные [50]
Королевство Delphi © 2010-2024
Яндекс цитирования