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

Bibliothèques et frameworks PHP Discussion :

[FPDF] Afficher image BLOB (stockée dans BDD) dans un pdf


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [FPDF] Afficher image BLOB (stockée dans BDD) dans un pdf
    Bonjour

    Je cherche à afficher sur un pdf une image qui se trouve dans une BDD en format BLOB. Je ne souhaite pas entrer dans le débat "stocker des images dans une BDD c'est bien/c'est pas bien". Merci de ne pas me proposer comme solution de ne pas stocker mes images dans la BDD...

    Ce problème a déjà été soulevé dans plusieurs discussions, mais ça ne m'a pas aidé a résoudre le problème. La solution la plus intéressante que j'ai trouvée est celle présentée à la fin de cette discussion http://www.developpez.net/forums/d10...mage-blob-pdf/, elle me paraissait bien logique, mais elle ne fonctionne pas.

    L'image s'affiche parfaitement sur une page HTML lorsqu'on met dans la balise le chemin la page php qui récupère l'image dans la BDD et l'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="afficheimmage.php?var=1" />
    Voilà ce que j'ai essayé jusque là:

    1/ La méthode Image(), en mettant en 1er argument l'URL absolue de la page php qui affiche mon image.

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->Image('http://monsite.fr/afficheimmage.php?var=1',60,30,90,0,'JPG');
    Message d'erreur:
    Warning: getimagesize(http://monsite.fr/afficheimmage.php?var=1) [function.getimagesize]: failed to open stream: Network is unreachable in /mnt/154/sdb/8/5/monsite/fpdf.php on line 1213
    FPDF error: Missing or incorrect image file: http://monsite.fr/afficheimmage.php?var=1
    2/ La méthode MemImage() (développé dans un script intitulé "Support des images en mémoire"), en mettant le contenu binaire du blob en 1er argument.

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->MemImage($DonneesBlob, 50, 30);
    Message d'erreur:
    Warning: Trop curieux... in /mnt/154/sdb/8/5/monsite/mem_image.php on line 70

    Warning: getimagesize(var://imgb5b45906d51496c840e1f08a9032eb16) [function.getimagesize]: failed to open stream: no suitable wrapper could be found in /mnt/154/sdb/8/5/monsite/mem_image.php on line 70
    FPDF error: Invalid image data
    Merci d'avance pour votre aide!

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voilà un nouvel essai, mais toujours bredouille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $image = imagecreatefromstring($DonneesBlob);
    $pdf->MemImage($image, 50, 30);
    C'est toujours la fonction getimagesize() qui pose un soucis...
    ...

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    vu les messages d'erreurs : le problème ne vient pas de la fonction en elle-même mais d'un problème d'inclusion de ressource.
    Pour pouvoir inclure des URL, il faut que la PHP t'y autorise : ragarde ici

    Vérifie ton php.ini

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci rawsrc, je reviens avec du retard... désolé...

    Alors je suis hébergé chez free pages perso, et apparemment chez free allow_url_fopen = off, et on ne peut rien changer.

    Ceci étant dit si je m'oriente vers la méthode MemImage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdf->MemImage($DonneesBlob, 50, 30);
    je ne vois pas en quoi allow_url_fopen = off serait un souci? Cette méthode en fait pas appel à une url externe, non?

    En fait le soucis c'est que je n'arrive pas à faire fonctionner cette méthode développée dans le script intitulé "Support des images en mémoire". Le développeur précise pour tant bien que cette méthode sert à "Lorsqu'une image est récupérée à partir d'une base de données".
    Y a-t-il quelqu'un qui a déjà réussi à la faire fonctionner, pour justement créer un pdf en récupérant des images dans une BDD?

    Merci d'avance!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bon, je viens de vérifier avec phpinfo(), et allow_url_fopen est bien sur ON...

    Je vais vérifier mes variables (j'utilise des variables de sessions) et voir si elles se transmettent bien.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Alors, pour conclure tout ça, même avec allow_url_fopen sur ON, free.fr a réussi à bloquer l'utilisation des "stream wrappers" ou "gestionnaires de flux", va savoir comment...

    Le script MemImage fonctionne parfaitement en local, mais plus sur un serveur de free...

    Merci Olivier de FPDF!

    Deux dernière solutions:
    1/ passer par un fichier .jpg temporaire
    2/ virer toutes mes images de la BDD et tout mettre dans un dossier...

    Je crois que je vais prendre la 2ème solution...

    Merci pour votre aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/09/2012, 17h07
  2. [FPDF] Afficher image blob sur PDF
    Par Saphir09 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 24/04/2012, 19h02
  3. image blob stocké dans le cache du navigateur
    Par neril dans le forum Langage
    Réponses: 7
    Dernier message: 18/02/2007, 01h08
  4. [MySQL] Afficher un questionnaire stocké dans une base
    Par wallawalla dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 11/01/2007, 12h12
  5. Réponses: 10
    Dernier message: 06/07/2006, 22h57

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