AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Image in Blob field (Web-Application)

Image in Blob field (Web-Application)

Ein Thema von Ykcim · begonnen am 24. Nov 2020 · letzter Beitrag vom 19. Dez 2020
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#1

AW: Image in Blob field (Web-Application)

  Alt 24. Nov 2020, 18:34
Das habe ich auch versucht, aber LoadFromStream kennt er angeblich nicht...
Patrick
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#2

AW: Image in Blob field (Web-Application)

  Alt 24. Nov 2020, 18:59
Hilft das als Idee? https://www.delphipraxis.net/1366902-post18.html

Ansonsten mal oben rechts bei Suche Blob Image eingeben und durch die Ergebnisse wühlen. Etliche tausend Treffer zum Thema, keine Ahnung welche der dort aufgeführten Lösungen die für Dich passende ist, aber die richtige Lösung ist bestimmt dabei wenn eventuell auch nicht unbedingt auf Anhieb auffindbar .

Weitere Suchbegriffe:

createblobstream
tblobfield

TBlobField(DataModule_Client.DataSet_NewLogo.FieldByName('logo')).SaveToStream(MStream);
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#3

AW: Image in Blob field (Web-Application)

  Alt 24. Nov 2020, 20:38
Vielen Dank.

Sag mal kannst Du mir sagen, was der Unterschied zwischen einem TStream oder TMemoryStream und einen JSONStream ist? Ich bekomme die Dinger leider nicht ausgelesen, damit ich mir die Struktur ansehen kann...

Gruß
Patrick
Patrick
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Image in Blob field (Web-Application)

  Alt 24. Nov 2020, 21:31
Hallo,
mit Stream.Size bekommt man immerhin die Größe raus.
Was ist denn Dein TImage für eine Klasse.
Dass es dafür kein SaveToStream gibt, ist schon merkwürdig.

Der SQL-Code von DataSet_NewLogo wäre auch nicht schlecht.
Heiko

Geändert von hoika (24. Nov 2020 um 21:59 Uhr)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#5

AW: Image in Blob field (Web-Application)

  Alt 25. Nov 2020, 16:16
Die Applikation, die ich gerade versuche ist eine Web-Application mit TMS Web Core.

Ich habe das Image (TWebImageControl) jetzt geschafft in ein Blob-Feld zu speichern:

Delphi-Quellcode:
procedure TForm_TVclient_Main.WFP3Change(Sender: TObject);
var Img_URL: string;
      Image_File: TJSHTMLFile;
      Img_Base64: string;
begin
   if Assigned(WFP3.Files[0]) then begin
      // Load Picture in TWebImageControl
      Image_File:=WFP3.Files.Items[0].FileObject;
      Img_URL:= Application.ObjectURL(Image_File);
      Img_Logo2.URL:= Img_URL;
      //Upload the Picture to MySQL as Blob
      Try
         Img_Base64:=Img_Logo2.Base64Image;

         DataModule_Client.DataSet_NewLogo.Insert;
         DataModule_Client.DataSet_NewLogo.FieldByName('logo').AsString:=Img_Base64; //Das ist ein Blob

         //Das habe ich nur aus Verzweiflung gemacht, weil ich das Bild aktuell nicht geladen bekomme
         DataModule_Client.DataSet_NewLogo.FieldByName('logo2').AsString:=Img_Base64; // Das ist ein VChar(9999)

         DataModule_Client.DataSet_NewLogo.FieldByName('company_id').AsInteger:=5; //Only for testing
         DataModule_Client.DataSet_NewLogo.FieldByName('logo_id').AsInteger:=6; //Only for testing
         DataModule_Client.DataSet_NewLogo.Post;
         DataModule_Client.DataSet_NewLogo.ApplyUpdates;
      Except
         ShowMessage('Error');
      End;
   end;
end;
Ich habe noch garkeine SQL-Statements gemacht. Ich habe einen xDataServer laufen, der eine Classe mit allen Datenbanktabellen enthält.
Über eine Connection greife ich auf den Server zu und kann mit DataSet.Open die Daten laden. Wenn ich mit meiner Application die ersten Schritte geschafft habe, werde ich entsprechende SQL-Statements noch definieren müssen...

Aktuell verzeweifel ich daran, das Image aus dem Blob-Feld zu laden. Hat da jemand eine Idee?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#6

AW: Image in Blob field (Web-Application)

  Alt 25. Nov 2020, 17:27
Ich habe gerade mal den Base64 String, bevor er in die Datenbank geschrieben wurde abgefangen und in eine TextDatei kopiert. Dort habe ich Zeilenumbrüche, Hockommas und Pluszeichen eingefügt und dann in folgende Procedure kopiert:

Delphi-Quellcode:
   Img_Logo2.URL:='data:image/png;base64,'+'iVBORw0KGgoAAAANSUhEUgAAAMIAAAAhCAYAAACLMXQdAAAgAElEQVR4Xu18B5QVVbb2V3Vz50QHMp2bHCQpCjqiSFDHgMAIOqOSkZw6oAJNg+QghplRZ+aZRpEsQUGyZBW6aRoQ6G5C59x9c9W/'+
'9j5V3Q3i4Lw389b713vX5QLurXvq1Dn72/vb397nSv0eelztdk8XSAZAVb1QFQPoZVAVQPVClhRIkgRFlQBZhgKZ/22EBEVR4HapsNtrMW78GCQlxUMCcPjQD5g7eyEKCitgkE1QZYnHpu9JCl0h'+
'QVJV0JCqrAKyhHZtE/HEkwPR/5E+CI+0wSwDOTk3MGzYOFTXuEHToZckiz8VjxuyTP8w8LiqfgEUQPIgPCQIc1KmIyYmGgsWLcLxY+cgSSZAUSFJMgyqASpNgMaUVHihQpIVXocm4cH4Tf/+eOK3'+
'A5CUGAmTGZAVwO2lOd3Elxt34JtvDuHm9ULAC1oRQKIJevmZAAWSauQ/FcmNuPiWSE2dit73dqLZwWEHcrKv4e+fbcK+vQdQUV4FGkVVVRhpAlB5bSVZhVeVeH6q143e996DFWuW4OChw0hfsArl'+
'5eUwmxWkJE/BiBGPQzaoYnHopUo8X6jA5m3fYs6cRfAqMvx9DJj32hwMHPQAxo6djkMHTkOWrIBXhqIAJpMJXq+2V7SuksJzCQkORM9eXTHyd8+gY+fWsNho3cSaXL9Wji2b9mDjhq9wI/8G74vq'+
'VSAZAcUL0JZLXhlGk4yIZmF45NG+ePK3jyE6NhJmA3AltwivTkzFxYv5fDHdj9bCbDbC7XHy48iSWbyv2SNdZzCq8PM3YfKUsRg2YjAMBqC8XMWunfuwacM2ZGXmwOVyaQtigCxLUGhBeBdofcnG'+
'nTQ5SJMmzVaXrVwMVRUPxtuoAEYZkOlNbx0kRYVqtkCFkcyFPzeQEauA06Fg8+bN6NipPdq2jeMHP3L4ByTPSUdJaQ1cHgUGgwEqxAMRECTebGHZAhdiTF8fMx4ZcD/GjH0RMW0i8NOlmxg6bBwq'+
'yx08hsdLxs94ZJDSYkkwNWw+GyMNpyAs1A+zZ89Em9hoLMp4EyePZ0FVBWgIDLRZhEEaQ8xDQ5osjJDA2659PGbNHIfuPdqDbOzYiTNYteo9/HDmPBQveQ6ZF8tkMEJRPAwG2iieA33G9uhFbFxz'+
'zJ07Bff16QqvAhzYfxLz31iKmzdKxBiqmI9Ka6PNR4DTC1k2smEaZRXdenTBmrXLceDgISxMX42KigrIqgMLF8zF8OEDodJ/+lj0bADcLmDjlm+QnLwYimqAv78FaSkzMXjI/Xj5pak4+t2PgGqG'+
'zHCmfaJ1Fc6P10YWRkF+xiCrCI8MxNTJYzHkiQchm4CzZy5hzep3cfxoJlxO8ez05DR/WhOFPJcqw2SywO12awboRcfOcZibPAOdOsQi/3oJJk1MQVbmJZgMZu3eXnZovMdsmMIBC1shA6b3VfgH'+
'mDF56lgMG/YEamvdWL/+A/zH3/4O1Wvg9aTn4WdhQ6P9IEep7TV/RkAhIEycoa5evZQNEeR52OuqAspuO4rzc1BWVoqW0W3hFxYJFSYGA19IQHB6sHnzVrRv3xZt2ybwgh05fBazZy9AUUElJKMR'+
'oaFBaBIRAEmiRRYPJQyWJgrU1NhxLb+IF87Xz4wxY0Zh+IinUFhYjBHDJqC8so78PoJDghARGcyGTtim+KSAPG8jLPAGehEU7ItRo55HREQU0hctxemTOXC6PQgM8kOLZhEwEpo070KLzZuuynA4'+

//viele weiter Zeile später

'rycP2dlfw2q+CUmq5mOYkkpVYQv8/TsisjnJsAQo4t40jgACUSOj2YSEpOdhMATA5chEdhYBQUZC4kOw2fppEYE0f5GEXvnpW1SU/whf3wjEJxFQ6cglyZbFTH0ICF5vLVq16oWQ4IHa9ykiFDIQ'+
'cnK+FkCI6QlfPwIaGXwmSgqPoLziDFRUih9boBOCfGzTBoshBOER3eATSLmPDfDmIuvcQbjc1WjVkpJligitOV+RJJJpC3D9+lF4lcto0SIA/w9jwH/n1CKA6QAAAABJRU5ErkJggg==';
Das Ergebnis ist, dass das Bild im TWebImageControl wieder korrekt geladen wird.

Ich brauche also nur einen Weg, um den Blob-Wert aus DataModule_Client.DataSet_NewLogo.FieldByName('logo') wieder in einen String umwandeln zu können.

Hat da jemand einen Anstoß für mich?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#7

AW: Image in Blob field (Web-Application)

  Alt 25. Nov 2020, 18:00
Base64 ist doch ein String.
DataModule_Client.DataSet_NewLogo.FieldByName('logo').AsString ?

Frei nach dem Motto: Wenn's mit .AsString reingeht, kommt's auch mit .AsString wieder raus

Den String mit Base64 musst Du dann decodieren und dem Image zur Anzeige "unterjubeln".

Für Lazarus dort ein bisserl Blättern (dritter Post): https://forum.lazarus.freepascal.org...?topic=39789.0

Sieht so aus, als könnte man es 1:1 nach Delphi übernehmen.

Weitere Ergebnisse mit Hilfe einer Suchmaschine: Bei Google suchenDelphi TImage Load Base64
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:48 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