AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Download ohne Cache?
Thema durchsuchen
Ansicht
Themen-Optionen

Download ohne Cache?

Ein Thema von mohikaner13 · begonnen am 2. Mär 2008 · letzter Beitrag vom 3. Mär 2008
 
mohikaner13

Registriert seit: 2. Mär 2008
Ort: Sankt Ingbert
10 Beiträge
 
Delphi 5 Standard
 
#8

Re: Download ohne Cache?

  Alt 2. Mär 2008, 21:58
Hallo,

ich würde jetzt wegen dieses Problems nur ungern irgendeine Komponentensammlung installieren.

@Christian Seehase: woher hast Du Deine Informationen bezgl. der Funktion URLDownLoadtoFile? gibt es dazu eine Dokumentation oder hast Du die Quellen mit Header?

Ich habe bei den Schweizern folgenden Code gefunden, der den Cache umgehen soll (das habe ich aber noch nicht ausprobiert). Aber der schreibt die heruntergeladenen Datei in die Variable 's'. Wie kann ich diese Variable bzw. die Datei dann als Image auf die Festplatte (oder alternativ in eine Image-Komponente) schreiben?

Oder hat jemand noch eine andere Idee?

Delphi-Quellcode:
3. Forces a download of the requested file, object, or directory listing from the origin server,
    not from the cache
}

function DownloadURL_NOCache(const aUrl: string; var s: String): Boolean;
var
  hSession: HINTERNET;
  hService: HINTERNET;
  lpBuffer: array[0..1024 + 1] of Char;
  dwBytesRead: DWORD;
begin
  Result := False;
  s := '';
  // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
  hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    if Assigned(hSession) then
    begin
      hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if Assigned(hService) then
        try
          while True do
          begin
            dwBytesRead := 1024;
            InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead);
            if dwBytesRead = 0 then break;
            lpBuffer[dwBytesRead] := #0;
            s := s + lpBuffer;
          end;
          Result := True;
        finally
          InternetCloseHandle(hService);
        end;
    end;
  finally
    InternetCloseHandle(hSession);
  end;
end;
--
Jörg Hemmerling
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz