AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IdHttpServer JPG-Download

Ein Thema von Hobbycoder · begonnen am 18. Jul 2019 · letzter Beitrag vom 19. Jul 2019
 
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: IdHttpServer JPG-Download

  Alt 19. Jul 2019, 09:28
hier mal meine Lösung:

bei INDY IdHTTP1 ist der Useragent hoch zu sezten, da manche Provider sonst den download blocken:

Code:
IdHTTP1.Useragent:='Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5 Build/NJH47F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36';
für https musst Du die entsprechende SSL Komponente zuweisen:

Code:
IdHTTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;

Code:
function ImageLoad(Picture: TPicture; FileName: string; WBImager:TWebBrowser=nil): Boolean;
var LStream: TMemoryStream;
  f: string;
  c: TCursor;
begin
  result := False;
  // Picture:=nil;
  if Trim(FileName) = '' then Exit;
  if WBImager<>nil then WBImager.Tag:=10; // keine Datei
  try
    if (Pos('http', lowercase(FileName)) > 0) or (Pos('www', lowercase(FileName)) > 0) then begin
      if WBImager<>nil then begin
       WBImager.Tag:=11; // Datei, aber noch nicht geladen
       if WBImager.Hint<>FileName then begin
        WBImager.Hint:=FileName;
        WBImager.Navigate(FileName);
       end;
       WBImager.Tag:=20; // Datei geladen
       result := True;
      end else begin
       LStream := TMemoryStream.Create;
       c := Screen.Cursor;
       Screen.Cursor := crHourGlass;
       try
        IdHTTP1.Get(FileName, LStream);
        LStream.Position := 0;
        f := Temp_Path + 'bild' + Copy(FileName, p_RInstr(0, FileName, '.'), 10);
        LStream.SaveToFile(f);
        Picture.LoadFromFile(f);
        result := True;
        FreeAndNil(LStream);
        DeleteF(f);
        result := True;
       except
        FreeAndNil(LStream);
       end;
       Screen.Cursor := c;
      end;
    end else begin
     if FileExists(FileName) then begin
       Picture.LoadFromFile(FileName);
       result := True;
     end;
    end;
  except
  end;
end;

Geändert von arnof (19. Jul 2019 um 09:30 Uhr)
  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 00:00 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