PHP->HTML: Afficher une image issue d'une BLOG dans la DB

Petit nouveau ! | 4 Messages

03 avr. 2008, 15:54

bonjour tt le monde !

Je suis en train de me casser la tête pour faire quelque chose d'assez commun (je trouve).

Voila. En HTML, pour afficher une image, on utilise la balise <IMG src='le lien'/>
seulement, certaines images que j'aimerais afficher, sont des images postées par les utilisateurs, et sont stockées dans la base de donnée sous forme de blob. Je ne peux donc pas définir l'attribut 'src' du tag IMG.

J'imagine que la solution (qui ne m'arrange pas du tout) serait de stocker les images postées sur le disque avec des noms uniques. Ou alors de créer un fichier image temporaire a partir du blob, quand on a besoin d'afficher l'image. mais dans ce cas, qui l'efface, et quand ?

Je ne vois pas une solution simple. j'imagine qu'il y a un moyen standard de faire ca.. quelqu'un pourrais me donner un coup de main ?

merci beaucoup et bonne journée !
Fabrice

Eléphant du PHP | 55 Messages

03 avr. 2008, 16:14

Ce qu'il faut que tu face c'est de faire un formulaire d'envoye de fichier sur ton serveur ! Avec cela tu recupere le nom de l'image que tu vien d'envoyer sur ton serveur ( regarde du coté de la variable global $_FILE[]) après tu peu soi la redimentionner soit la renomer pour pas avoir de doublon d'image ! et par la suite vue que tu as récupérer dans une variable le nom de l'image tu peu donc enregister celui ci dans la base de donnée !

J'espère avoir été clair je t'ai donné les grandes pistes .

Salutation Jean-Baptiste

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 avr. 2008, 17:11

Hormis de (très) rares exceptions, il n'est franchement pas judicieux du tout d'insérer une image dans une base de données.

Quoi qu'il en soit, une fois qu'elle y est, il suffit de lire sa valeur, reconstituer l'image avec imageCreateFromString() (ou un truc du genre) et la retourner au navigateur.

En gros, dans ton attribut "src" tu mets un truc du genre "afficheImage.php?idImage=21", où ton script afficheImage.php ferait ce qui est décrit ci-dessus, cad aller chercher l'image en base, la reconstituer et la retourner au navigateur sous forme de flux, sans stoquer quoi que ce soit sur le disque...

Mais il ne faudra pas s'étonner des problèmes de performances quand la taille de la table se comptera en giga à cause des images qu'elle contient... ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 4 Messages

04 avr. 2008, 13:46

merci infiniment pour vos réponses, les choses sont parfaitement clair pour moi maintenant

je vous souhaite une bonne journée!
Fabrice

ViPHP
pjl
ViPHP | 2119 Messages

06 avr. 2008, 21:03


Petit nouveau ! | 4 Messages

15 avr. 2008, 17:46

génial merci bcp