Descărcați fișierul de pe internet (delphi)

Descărcați fișierul de pe Internet (Delphi).

Dacă programul dvs. include plug-in-uri (BPL sau DLL) sau este necesar să se actualizeze programul în sine, cu siguranță a fost o problemă la actualizarea copii ale programului. Odată cu dezvoltarea internetului, a existat o mare oportunitate de a face acest lucru rapid și frumos. În acest articol, vă vom arăta cum să adăugați opțiunea pentru actualizarea automată a programelor de pe Internet.
Delphi ne oferă acces deplin la API WinInet (wininet.pas), permițându-vă să vă conectați și descărca orice fișier de pe site-ul specificat folosind protocoale FTP sau HTTP. De exemplu, putem folosi funcțiile API WinInet pentru a crea un browser FTP sau un program pentru a căuta fișierele specificate pe servere publice FTP.
Funcția principală a programului nostru este GetInetFile:

funcția GetInetFile (const fileURL, FileName: String): boolean;
const BufferSize = 1024;
Var hSession, hURL: HInternet;
Buffer: array [1..BufferSize] de Byte;
BufferLen: DWORD;
f: Dosar;
sAppName: șir;
începe
Rezultat: = False;
sAppName: = ExtractFileName (Application.ExeName);
hSession: = InternetOpen (PChar (sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, zero, 0);
încerca
hURL: = InternetOpenURL (hSession,
PChar (fileURL), nul, 0,0,0);
încerca
Atribuiți fișierul (f, FileName);
Rescrie (f, 1);
repeta
InternetReadFile (hURL, @Buffer, SizeOf (Buffer), BufferLen);
BlockWrite (f, Buffer, BufferLen)
până când BufferLen = 0;
CloseFile (f);
Rezultat: = Adevărat;
în cele din urmă
InternetCloseHandle (hURL)
capăt
în cele din urmă
InternetCloseHandle (hSession)
capăt
se încheie;

Notă: Desigur, acest exemplu trebuie extins prin introducerea, spre exemplu, a codului pentru a afișa progresul descărcării în bucla.
Este foarte ușor să utilizați funcția GetInetFile:

dacă GetInetFile (FileOnNet, LocalFileName) = True atunci
ShowMessage ("Descărcare de succes")
altfel
ShowMessage ("Eroare în descărcarea fișierului")