AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit HTTP.Get

Ein Thema von ATS3788 · begonnen am 29. Nov 2017 · letzter Beitrag vom 30. Nov 2017
 
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

Probleme mit HTTP.Get

  Alt 29. Nov 2017, 13:43
Hallo ich veruche Images mit Chromium down zu loaden wie in dem Post beschrieben
https://stackoverflow.com/questions/...-image-to-file
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtDlgs, IdHTTP, cefvcl, ceflib;

const
  MENU_ID_SAVE_IMAGE_AS = Ord(MENU_ID_USER_FIRST) + 1;

type
  TDownloader = class(TThread)
  private
    FURL: string;
    FFileName: string;
  protected
    procedure Execute; override;
  public
    constructor Create(const URL, FileName: string); reintroduce;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Chromium1: TChromium;
    SavePictureDialog1: TSavePictureDialog;
    procedure FormCreate(Sender: TObject);
    procedure Chromium1BeforeContextMenu(Sender: TObject; const browser: ICefBrowser;
      const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel);
    procedure Chromium1ContextMenuCommand(Sender: TObject; const browser: ICefBrowser;
      const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer;
      eventFlags: TCefEventFlags; out Result: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TDownloader }

constructor TDownloader.Create(const URL, FileName: string);
begin
  inherited Create(False);
  FreeOnTerminate := True;
  FURL := URL;
  FFileName := FileName;
end;

procedure TDownloader.Execute;
var
  HTTPClient: TIdHTTP;
  FileStream: TFileStream;
begin
  try
    HTTPClient := TIdHTTP.Create;
    try
      FileStream := TFileStream.Create(FFileName, fmCreate);
      try
        HTTPClient.Get(FURL, FileStream);
      finally
        FileStream.Free;
      end;
    finally
      HTTPClient.Free;
    end;
  except
    // error handling ignored for this example
  end;
end;

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chromium1.Load('http://www.google.com/');
end;

procedure TForm1.Chromium1BeforeContextMenu(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel);
begin
  if (CM_TYPEFLAG_MEDIA in params.TypeFlags) and (params.MediaType = CM_MEDIATYPE_IMAGE) then
    model.AddItem(MENU_ID_SAVE_IMAGE_AS, 'Save image as...');
end;

procedure TForm1.Chromium1ContextMenuCommand(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer;
  eventFlags: TCefEventFlags; out Result: Boolean);
var
  SaveDialog: TSavePictureDialog;
begin
  if (commandId = MENU_ID_SAVE_IMAGE_AS) then
  begin
    SaveDialog := TSavePictureDialog.Create(nil);
    try
      // SaveDialog.FileName := <here you can extract file name from params.SourceUrl>;
      // SaveDialog.DefaultExt := <here you can extract file ext from params.SourceUrl>;
      if SaveDialog.Execute then
        TDownloader.Create(params.SourceUrl, SaveDialog.FileName);
    finally
      SaveDialog.Free;
    end;
  end;
end;
end.

Nur bei den meißten Bilder bekomme ich Schutzverletzungen
Delphi-Quellcode:
 
 HTTPClient.Get(FURL, FileStream);
Mit einem normalen Browser kann ich ohne Probleme das entsprechende Image
speichern. Das Bild, der Link ist also in Ordnung.
Hat dazu jemand eine Idee
Martin MIchael
  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 21:14 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