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;