Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi File Download Mit status anzeige !? (https://www.delphipraxis.net/106195-file-download-mit-status-anzeige.html)

dor557 7. Jan 2008 01:26


File Download Mit status anzeige !?
 
Hallo zusammen.

Ich habe Inzwischen Folgendes Problem :

Ich möchte aus dem Internet ein Update-File herunterladen.

Das Realisiere ich momentan mit Folgendem Code :

Delphi-Quellcode:

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;
  f1 : Integer;
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, INTERNET_FLAG_DONT_CACHE, 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;
Funktioniert auch so weit ganz gut.

Jetzt möchte ich noch das Ein statusbalken z.b. TProgressBar anzeigt wie weit der Download Gerade fortgeschritten ist.

Nun kann ich ja wenn ich es möchte die Dateigrösse in einer Temporären datei auf dem Internet-Server zwischenspeichern und auslesen. Das ist aber nicht das was ich möchte.

Ausser der Buffer-Grösse (1024) Logisch.... Kann ich nichts ermitteln. Oder Doch ?

wenn ja wäre es schön wenn ich erfahren könnte wie.

Villeicht eine andere methode um dateien aus dem internet herunterzuladen, oder Eine Funktion die ich übersehen habe ??

Bin für alle vorschläge offen.

Gruss Sascha

Dani 7. Jan 2008 02:11

Re: File Download Mit status anzeige !?
 
Mit HttpQueryInfo und dem Flag HTTP_QUERY_CONTENT_LENGTH kannst du die Größe der Datei bestimmen.

dor557 7. Jan 2008 03:09

Re: File Download Mit status anzeige !?
 
Danke das hat mir gefehlt :)

Nun gehts :)

Gruss Sascha


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz