OVH Cloud OVH Cloud

images et mysql

9 réponses
Avatar
glad
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Merci.

9 réponses

Avatar
Thibaut Allender

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?


en lisant le contenant du blob et le balancant avec le header ad hoc

ca doit evidemment etre un fichier separé qui ne fait *que* afficher l'image

typiquement, ca ressemble a ca :

<?php
header("Content-type: image/jpg");

/* puis les requetes sql et l'extraction du blob qui vont bien */
?>

ceci dit, stocker une image dans une base de données n'est pas
forcemment une bonne idee
surtout pour un site, puisque l'appel des images se fait de toutes
facons via un autre processus

il est en effet plus simple de stocker l'image ailleurs sur le serveur,
et de juste stocker le chemin qui mene a cette image dans la base (ou de
nommer l'image en fonction d'un id, auquel cas on n'a meme pas besoin du
chemin, qu'on peut reconstituer tout seul)

--
thibaut allender | freelance | http://capsule.org

Avatar
nicol
tu fais une recherche dans ta base de données pour avoir le bon
enregistrement, puis apres, tu peux faire un truc du genre :

<?php
echo "<IMG src="$champ_fichier_dans_la_base_de_données">";
?>


bye
Nico

"glad" a écrit dans le message de news:
4114dee5$0$32067$
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Merci.


Avatar
Nico
"glad" a écrit dans le message de
news:4114dee5$0$32067$
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Merci.


Bonjour,

Il suffit de faire <img src="monimage.php" /> où le script PHP génère un
flux JPEG:

<?php
Header("Content-type: image/jpeg");
// chercher $myblob dans la BD
$im = ImageCreateFromString($myblob);
ImageJPEG($im);
ImageDestroy($im);
?>
--
Nico | http://nzeches.free.fr
Un intellectuel assis va moins loin qu'un con qui marche. (M.Audiard)

Avatar
Sebastien
glad wrote:
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Merci.


Dans la page principale :

<img src="image.php?id3" alt=""/>

Puis dans image.php :

$sql = 'SELECT ALL tonImage
FROM taTable
WHERE imageId = ' . $_GET['id'] ;
$rs = mysql_query($sql) ;
$tuple = mysql_fetch_object($rs) ;
header('Content-Type: image/jpeg') ;
echo $tuple->tonImage ;

Mais mieux vaut stocker seulement le chemin de l'image.

Avatar
- Sebastien -
glad - Le 09/08/2004
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de type
blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Un bout de codep our afficher l'image :


<img src="image.php?id3" alt="Image"/>

Puis le script image.php kivabien :

<?
$resultat = my_query('SELECT tonblob FROM tatable WHERE id='.$id);
$tonimage = my_fetch($resultat);

header('quivabien'); // c'est à dire le content-type selon le format,
etc...
echo $tonimage['tonblob'];
?>

Avec quelques tests quand même...

--
Seb.
Webmaster SNT
Société Nautique de la Trinité Sur Mer
http://www.snt-voile.org

Avatar
Baroiller Pierre-Emmanuel
Ben... sur ta page www :
<img src="image.php?id=xx">

et dans le fichier image.php

<?php
$query = "select image from ta_table where id=".$_REQUEST['id'];
$result = mysql_quer($query);
header("image/jpeg")
echo mysql_result($result,0);
flush();
?>

(enfin, en + "sécurisé" mais c le principe)...

a+

----------------------------------------------------------------------------
Pierre-Emmanuel Baroiller
Responsable Développement Logiciels & Administration système
[daoditu]


"glad" a écrit dans le message de
news:4114dee5$0$32067$
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Merci.


Avatar
Thibault
glad wrote:
Bonjour,

J'ai créé une base de données Mysql, avec ds une table un champ image de
type blob dans lequel j'ai inséré une image jpg.

Mon problème est simple : comment afficher cette image sur une page web ?

Merci.



Bonjour

Et bien 2 possibilités selon moi :
* Récupérer le nom et le contenu de l'image et créer un fichier
temporaire, (mais pour combien de temps ?!)
puis mettre ce nom dans une <img src="monimage.jpg" />
* Envoyer directement l'image en HTTP, en spécifiant le type mime:
Quand tu recois la requete du Navigateur:
GET /shoimage.php?image.jpg HTTP/1.1
Host: www.tonsite.com

Tu écris sur la sortie:
Content-Type: image/jpeg
Content-Length: XXXX //ou XXXX est la taille en octets de ton image

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX

Ou XXXXXX... est le contenu binaire de ton image.

Derniere possiblité, qui est selon moi, de loin la plus propre (mais que
je n'ai pas compté dans les 2 car ce n'est pas vraiment une réponse à ta
question) :
Stocker dans la base des urls/chemins d'acces aux images :
Ex: /images/db/truc1.jpg
et mettre ces chemin dans la page: <img src="/images/db/truc1.jp" />

Voila.
Bon courage
--
Thibault

Avatar
BLob
Pour afficher une image dans une page web, ce qu'il te faut, c'est l'url de
l'image, que tu construis à partir du nom du fichier. Tout ça pour dire que
tu n'as pas besoin de stocker l'image dans ta base de données, mais juste le
nom du fichier, que tu places dans un répertoire bien défini. Tu alourdis ta
base de données et tous les traitements qui vont avec pour rien. En fait il
faut un besoin très particulier (!) pour envisager sérieusement de stocker
l'image elle-même dans la base de données.

BLob
Avatar
Thibaut Allender

tu fais une recherche dans ta base de données pour avoir le bon
enregistrement, puis apres, tu peux faire un truc du genre :

<?php
echo "<IMG src="$champ_fichier_dans_la_base_de_données">";
?>


ben tiens... depuis quand on balance le flux de l'image dans le src du
tag img ?
c'est un champ de type BLOB, ce qui veut dire que les *données* de
l'images sont contenues dans ce champ, pas une URL

--
thibaut allender | freelance | http://capsule.org