Buy Now
Sign in

How to display and capture an image stored in BLOB

jmgroud , February 09 2020, 21:17
jmgroud 149
February 09 2020, 21:17 #391116
 Answer
English
I have an "artist" table containing several fields including an image corresponding to the artist's photo.
This image is NOT STORED IN A FILE ON DISK, but in a BLOB field of the database.
(thank you not to discuss on the management of the images in BLOB or by file, it is not the subject of this post )
I would like to know at first how to display this photo in a table (views / lists / table)?
I tried several methods without success ...
For example use a "view / html" with the following code:
<? Php
header ("content-type: image / jpeg");
echo "<img src = '"; echo "{var: artistes_table.row.Artistes.photo}"; echo "'/>";
?>
The result is a small square showing an empty image followed by a whole set of illegible characters ...
thank you in advance for your help
Français
J'ai une table "artiste" contenant plusieurs champs dont une image correspondant à la photo de l'artiste. Cette image N'EST PAS STOCKÉE DANS UN FICHIER SUR DISQUE, mais dans un champ BLOB de la base de données.
(merci de ne pas discuter sur la gestion des images en BLOB ou par fichier, ce n'est pas le sujet de ce post ;-).

J'aimerai dans un premier temps savoir comment afficher cette photo dans une table (views/lists/table) ?

J'ai essayé plusieurs méthodes sans succès...
Par exemple utiliser une "view/html" avec le code suivant :
<?php
header ( "content-type: image/jpeg");
echo "<img src='"; echo "{var:artistes_table.row.Artistes.photo}"; echo "'/>";
?>

Le résultat est un petit carré montrant une image vide suivie par la suite de tout un ensemble de caractères illisibles...
Merci d'avance pour votre aide
Le peu que je sais est occulté par le trop que je ne sais pas...
(The little that I know is overshadowed by the too much that I don't know ...)
healyhatman 9
February 09 2020, 22:00 #391118
 Answer
You can't use shortcodes in PHP. At the very least you want
<img src="{var:artistes_table.row.Artistes.photo}"> 
If you are using PHP then you'll need $this->get("aritstes_table.row.Artistes,photo")
Web developer at SkySpider.com.au - I DO NOT work for ChronoEngine!
Donations: paypal.me/healyhatman
Professional Work: kamron@skyspider.com.au
Custom CF / CC Plugins and Extensions: skyspider.com.au/store
jmgroud 149
February 09 2020, 23:02 #391119
 Answer
English
I tried this solution in simple view/HTML: <img src = "{var: artistes_table.row.Artistes.photo}" />
==> Same problem...
I tried in PHP:
<?php
header ( "content-type: image/jpeg");
echo "<img src='" & $this->get("artistes_table.row.Artistes.photo") & "' />";
?>
Does not work either: no picture frame, displays only the 2 characters "$" and "-"!
If I delete the line: header ("content-type: image / jpeg");
==> Same problem, same display (the "header" seems to be useless ...)
Français
J'ai essayé cette solution en simple view/HTML : <img src = "{var: artistes_table.row.Artistes.photo}" />
==> Même problème
Et ce test en Php :
<?php
header ( "content-type: image/jpeg");
echo "<img src='" & $this->get("artistes_table.row.Artistes.photo") & "' />";
?>
==> Ne fonctionne pas non plus : pas de cadre d'image, affiche uniquement les 2 caractères "$" et "-" !
Si je supprime la ligne : header ("content-type: image/jpeg");
==> Même problème, même affichage (le "header" semble ne servir à rien...)
Le peu que je sais est occulté par le trop que je ne sais pas...
(The little that I know is overshadowed by the too much that I don't know ...)
healyhatman 9
February 09 2020, 23:38 #391120
From looking at Google this is not going to be as simple as you want it to be - looks like for each row you need a script that retrieves the data from the database and has it returned with the header type set to image.
Web developer at SkySpider.com.au - I DO NOT work for ChronoEngine!
Donations: paypal.me/healyhatman
Professional Work: kamron@skyspider.com.au
Custom CF / CC Plugins and Extensions: skyspider.com.au/store
jmgroud 149
February 10 2020, 11:32 #391126
 Answer
English
I found a very simple solution for the display ...
Put this line in a "view" type "HTML":
<?php
echo '<img
src="data:image/jpeg;base64,'.base64_encode($this->get("artistes_table.row.Artistes.photo")).'"
style="border:1px solid black; border-radius:10px;"
/>';
?>
(you must of course adapt the php "get" instruction according to your data and modify the "style" according to your desire).
When I have found a solution to create and modify a new image in a BLOB field of the database I will post the solution here.
Français
J'ai trouvé une solution très simple pour l'affichage...
Mettre cette ligne dans une "view" de type "HTML" :
<?php
echo '<img
src="data:image/jpeg;base64,'.base64_encode($this->get("artistes_table.row.Artistes.photo")).'"
style="border:1px solid black; border-radius:10px;"
/>';
?>

(vous devez bien entendu adapter l'instruction php "get" en fonction de votre donnée et modifier le "style" suivant votre désir).
Lorsque j'aurai trouvé une solution pour créer et modifier une nouvelle image dans un champ BLOB de la base je posterai la solution ici.
Le peu que je sais est occulté par le trop que je ne sais pas...
(The little that I know is overshadowed by the too much that I don't know ...)