IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage d'images BLOB


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Par défaut Affichage d'images BLOB
    Bonjour,

    J'ai un gros soucis avec l'affichage d'images qui se trouvent dans ma base. Elles sont stockées au format BLOB (je sais qu'il y a beaucoup mieux comme option mais c'est indépendant de ma volonté, je ne peux pas changer ça) et lorsque je souhaite les afficher, impossible d'obtenir l'image correcte.

    Par exemple cette image (désolé pour la taille et la qualité) :

    Avec comme outils :
    -PHP : 5.2.1
    -PhpMyAdmin : 2.9.2
    -MySQL : 5.0.22

    Donne ceci :

    Avec ces outils :
    - PHP : 5.2.5
    - PhpMyAdmin : 2.6.0-pl3
    - MySQL : 5.0.22

    Comme on voit pas bien, je peux dire qu'en gros, le coin en haut à gauche correspond à l'image de départ mais que le reste, c'est pas ça du tout...

    D'où cela peut venir ? De la manière dont phpMyAdmin encode ces images dans la base ou de la manière dont je les fait afficher (je transfère le contenu du BLOB dans un fichier avec fwrite sous php pour le faire afficher dans une balise <img ...>).

    Merci pour votre aide car j'ai parcouru beaucoup de forums pour voir comment utiliser les BLOB (j'ai essayé de faire afficher directement le BLOB avec "header('Content-type:image/jpeg')", j'ai essayé avec un script d'envoi du BLOB mais rien n'y a fait, soit je n'ai rien du tout, soit j'ai le contour de l'image avec la fameuse croix rouge, soit j'ai l'image "déformée".

    De plus, le stockage et l'affichage des images fonctionnent sur d'autres serveurs tournant sous les mêmes environnements (seules les versions des applications utilisées diffèrent).

    Merci.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Par défaut
    Bonsoir,

    J'ai essayé de manipuler des images en utilisant d'autres outils. J'ai installé pour faire cela EasyPHP qui utilise ces outils :
    - PHP : 5.2.0
    - PhpMyAdmin : 2.9.1.1
    - MySQL : 5.0.27

    Les images sont correctement enregistrées et correctement affichées.

    Pensez-vous qu'un tel problème puisse provenir de la manière dont PhpMyAdmin est configuré (fichier de configuration) ?
    Sinon, d'où cela peut-il venir ? PHP ? MySQL ?

    Merci d'avance pour le moindre conseil ou l'aide que vous pourrez m'apporter.

  3. #3
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    juste une idée comme ca : ca pourrait etre le type champ blob qui n'est pas assez grand pour enregistrer ton image en entier, tu coup, les données seraient tronquées.
    donc le navigateur recoit le début du fichier lui indiquant ses dimensions, il s'attend à recevoir une quantité X de données, qui commencent à arriver (donc il commence à afficher l'image), puis les données se tarissent et la ... c'est le drame ... !

    Ca n'a peut être rien à voir, mais ça mérite quand même d'être vérifié ...
    Pour info, il semble que les blobs soient limités à 64 Ko , ce qui n'est pas énorme pour une image, avec une photo ca peu vite atteindre la limite ...
    Quoiqu'il en soit, il vaut mieux enregistrer l'image sur le système de fichier local, et son chemin dans la base de données ...

    Edit : si ton traitement php est long, ca pourrait aussi être le timeout d'éxécution défini dans le php.ini qui arrive à son terme et qui coupe ainsi brutalement l'envoi des données ... ?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Par défaut
    Bonjour et merci pour cette réponse.

    Pour ce qui est de la taille du champ BLOB de ma base, que ce soit sur mon serveur ou en local avec EasyPHP, elles est définie à MEDIUMBLOB (les images que l'on doit insérer dans la base sont des imagettes de petite taille donc c'est suffisant).

    Pour ce qui est du traitement PHP, j'ai modifié dans le php.ini les valeurs des variables max_execution_time (essai à 600 au lieu des 30 par défaut) et max_input_time (essai à 600 au lieu de 30) et rien n'y a fait, ça n'a rien changé dans l'affichage de mes images...

    Mon problème ne vient pas du fichier de configuration de PhpMyAdmin, je l'ai comparé avec celui du PhpMyAdmin d'EasyPHP, ils sont identiques.

    Alors peut-être que c'est la version de PhpMyAdmin que j'utilise qui gère mal les BLOBs.
    Sinon, j'ignore vraiment d'où cela peut venir...

    Est-ce que si j'utilise le PhpMyAdmin d'EasyPHP (version 2.9.1.1) cela peut régler mon problème ? Dans ce cas là, comment modifier la version sur mon serveur ? Un copier/coller pour remplacer mes fichiers suffira-t-il ?

    EDIT : Je viens de copier le PhpMyAdmin de mon serveur (2.9.2) à la place de celui d'EasyPHP (2.9.1.1) et ça fonctionne, les images s'affichent correctement... Je suis vraiment perdu et je ne sais plus si ça vient de PhpMyAdmin, de PHP, de MySQL ???
    J'ai copié le PhpMyAdmin d'EasyPHP à la place de celui de mon serveur, toujours le même problème pour l'affichage des images, ça ne change rien.

    Merci pour votre aide.

  5. #5
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    phpmyAdmin n'a rien a voir la-dedans !
    Ce n'est qu'une interface pour gérer ta base de données MySQL, ça n'a aucune influence sur tes applications.
    La conf MySQL peut être, mais certainement pas celle de phpMyAdmin !

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Par défaut
    Donc il n'est pas possible qu'il y ait une erreur de phpMyAdmin lors de l'insertion d'images dans la base (lors de l'encodage de l'image) ?

    Si c'est une erreur de MySQL, comment se fait-il qu'avec les mêmes versions on ai deux résultats différents ? Cela ne peut que provenir du fichier de configuration non ?

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Par défaut
    J'ai fait différents test pour savoir d'où vient l'erreur mais j'obtiens toujours le même problème, l'image que je teste est toujours mal affichée.

    J'ai copié le dossier "mysql" d'EasyPHP à la place du dossier d'installation de MySQL de mon serveur, j'ai fait la même chose avec PHP et même problème.

    Par contre dans l'autre sens (dossiers du serveur à la place de ceux d'EasyPHP) ça fonctionne ! Les images sont gérées correctement et s'affichent bien.

    Je vais devenir fou je pense...

    La seule solution serait peut-être la réinstallation de tout mon serveur depuis le départ... Qu'en pensez-vous ?

Discussions similaires

  1. [MySQL] Affichage d'image blob avec PHP
    Par minichips dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/03/2014, 16h44
  2. [MySQL] Affichage d'image BLOB
    Par micka180 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/09/2008, 15h09
  3. Affichage d'une image (BLOB) dans un JPanel
    Par Vips dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/03/2008, 15h38
  4. Réponses: 1
    Dernier message: 02/03/2008, 16h16
  5. [MySQL] Affichage d'image (blob)
    Par weejungle dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/11/2005, 13h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo