Page 1 sur 1

Récupération fichier image depuis bd mysql

Posté : 10 mai 2013, 14:22
par FBAYART
Bonjour

Je parviens à envoyer un fichier image .jpg vers ma bd mysql. Par contre je ne parviens pas à la récupérer sur ma page php. Le résultat m'affiche des codes et lettres ´ n'en plus finir.

Pourriez- vous m'indiquer le bon code php à rédiger pour récupérer mon image et qu'elle puisse s'afficher correctement ?

Merci d'avance pour le coup de main

Re: Récupération fichier image depuis bd mysql

Posté : 10 mai 2013, 14:29
par zeus
Comment affiches-tu ton image ? un echo du code de l'image ?

Si c'est ça, c'est normal que ça ne marche pas, puisqu'il faut que tu appelles une url qui va afficher ton image, en donnant le bon type/mime.
Voilà une ressource qui devrait t'aider : http://forum.hardware.fr/hfr/Programmat ... 4098_1.htm

Re: Récupération fichier image depuis bd mysql

Posté : 10 mai 2013, 20:54
par blof
Bonjour,

Il paraît que c'est pas une bonne idée de stocker des images dans une bd.
Dans la bd on stocke seulement le chemin vers les images.
Les images sont enregistrées en tant que fichiers.

(bon, je ne suis pas un pro ... si quelqu'un a des arguments ...pour ou contre ...)

Re: Récupération fichier image depuis bd mysql

Posté : 10 mai 2013, 21:56
par moogli
accès beaucoup plus lent, il te faut bien gérer le cache serveur pour éviter des requêtes bdd assez lourde, il faut gérer l'insertion en base etc etc

avantage tu peu simplement changer l'image en étant certain de ne pas changer l'url d'appel.

suivant les besoins, l'espace disque alloué pour une base est souvent plus retreint que celui alloué pour les fichiers, même si c'est de moins en moins vrai.


@+

Re: Récupération fichier image depuis bd mysql

Posté : 10 mai 2013, 23:03
par blof
Merci moogli

Re: Récupération fichier image depuis bd mysql

Posté : 11 mai 2013, 08:57
par lalmat
En effet, les images en BDD c'est mal... Mais si un jour tu es tenté, voilà une version courte.
$data = base64_decode("TA CHAINE EN BDD");   // Données récupérées de la base de données
$im = imagecreatefromstring($data);     // Création de l'image PHP à partir de la chaine en BDD.
header('Content-Type: image/png');    // Envoi du type au navigateur client, Si c'est du png évidement... sinon il faut adapter image/jpg, etc...
imagepng($im);                                  // Envoi de l'image au navigateur du client
imagedestroy($im);                             // Clean de la mémoire car la manipulation d'image est très couteuse !

Re: Récupération fichier image depuis bd mysql

Posté : 11 mai 2013, 12:17
par moogli
Attention au base_decode cela dépend de l'insertion ;)

@+

Re: Récupération fichier image depuis bd mysql

Posté : 11 mai 2013, 14:50
par lalmat
Exact.

Re: Récupération fichier image depuis bd mysql

Posté : 13 mai 2013, 15:59
par FBAYART
Pour être plus clair, la gestion de l'image que j'insère ici ou là de ma page ne me pose aucun soucis.

Le problème en fait est le suivant :
L'internaut peut télécharger un fichier avec sa photo (par exemple). Ce fichier est repris au sein de ma Bdd chez 1&1 (mysql) dans une colonne de type BLOB. jusque là tout va bien... C'est ensuite que j'éprouve un problème pour faire afficher la photo de mon internaut sur sa page personnelle (par ex). voici ce que m'affiche :
����JFIF��XExifMM*�i2��y��C ��C��y"�� ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(��5���_�����f����t�7�u����-gxۥ�F�K����H��nv�r�1�yy}��/�6�ЕY�G����?J(�����{����>?�S/���OO��5O�׾6���խ� ���[(�1�ኢ�������l��;◉�&~����>"��/ C:i�5Դy�Z���{�.��WʞPN�g>fb�3ɔ��J�st���+��}{��-�MU��k��7���i{CtW�������⻏�a��|����.��T������;8�h�$q�+�4���^־ j��v�������Fţ�P�������b��7K��Uǘ�"��Ӌ�z.��rME�^�g�tW���������p���W��>$x3�R؝CL�̉n#���@*�2�с�A�����2|{����|������5�`��Q��˃$���*��x�Q#��2��+���kۭ�{�[_B:9tN�>ާ�4W��ď�*����7�.�.... :shock:
Alors que j'aimerai voire apparaître la belle photo de mon internait.... :D

Re: Récupération fichier image depuis bd mysql

Posté : 13 mai 2013, 16:24
par ghost5922
Bonjour,

dans ton fichier php ajoute cela en haut
header('Content-Type: image/jpeg');
pour ce fichier c'est un jpg mais attention au autre format

Re: Récupération fichier image depuis bd mysql

Posté : 13 mai 2013, 17:19
par FBAYART
je viens d'essayer... toujours le même résultat

Re: Récupération fichier image depuis bd mysql

Posté : 14 mai 2013, 05:49
par blof
je viens d'essayer... toujours le même résultat
Je ne vois pas vraiment ce que tu as essayé.

Tu as ajouté "header('Content-Type: image/jpeg');" en première ligne ?
OK, mais où ?
Sur la page où tu as ta balise <img> ?


Tu peux nous mettre un bout de code (simplifié) de ce que tu as fait ?

(sinon tu as jeté un œil sur le lien qu'a donné zeus ?)

Re: Récupération fichier image depuis bd mysql

Posté : 14 mai 2013, 08:40
par FBAYART
Voici ma ligne de code, récupérant le fichier téléchargé par l'internaute et enregistré dans la colonne 'photo_profil' de type BLOB

<p><img src="<?php echo $row_identifiant['photo_profil']; ?>" /></p>

Re: Récupération fichier image depuis bd mysql

Posté : 14 mai 2013, 10:11
par ghost5922
Bonjour,

le plus simple serai de mettre l'appelle a l'image dans un fichier php a cote car tu ne peux pas mettre ton texte + un header image

donc créer un fichier images.php tu lui passe en get l'id de l'image et tu affiche avec le header etc et prévoi un cache

<p><img src="images.php?id=1" /></p>

Re: Récupération fichier image depuis bd mysql

Posté : 16 mai 2013, 23:26
par moogli
ou utiliser la possibilité des "data" pour le background css => http://css-tricks.com/data-uris/ (par exemple)

Même si le fichier externe est a privilégier car plus flexible et réutilisable.

@+