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

Langage PHP Discussion :

[mpdf] Image non affichée dans le pdf créé


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut [mpdf] Image non affichée dans le pdf créé
    Bonjour,

    J'ai un problème avec une image dans le pdf créé avec mpdf.
    Si je travaille en localhost, elle est bien présente, tandis que sur le serveur pas (juste le carré d'une image manquante), malgré quelle est bien téléchargée à son emplacement.
    Pour être certain, j'ai renommé l'image en local -> absente sur le pdf et ensuite remis le bon nom et envoyé avec fillezilla sur le serveur.

    J'ai tapé l'url de l'image, elle est bien accessible (droits 775 pour tester).

    J'ai lu sur un autre forum que la librairie GD devait être présente dans PHP pour les png avec transparence : c'est bien le cas !
    Je lis une page complète dans mpdf., le reste de la page est bien dans le pdf (juste un CSS qui n'est pas prit en compte, mais ce n'est pas trop grave !)

    Quelqu'un a une idée de la raison et comment déboguer dans mpdf ?

    Code de l'image dans la page :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="print_only"><img src="../images/cecs_logo.png" border="0" alt="Logo" />Texte</p>
    Le texte s'affiche bien, le <p> est donc bien présent et pas un soucis de case

    Code pour mpdf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    require_once __DIR__ . './../modules/mpdf/vendor/autoload.php';
     
    $page = "./rgpd.php";
    $mpdf=new \Mpdf\Mpdf();
    $stylesheet = file_get_contents('./../css/responsive_cecs.css'); //if you wanted some styling
    $mpdf->WriteHTML($stylesheet,1);
    $mpdf->WriteHTML(file_get_contents($page)); 
    $mpdf->Output('RGPD.pdf',"D");
    ?>
    Rien de bien spécial

    Merci pour votre aide,
    ddaweb

  2. #2
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Avec mon ami nous avons trouvé la cause du blocage : le fichier .htaccess bloquait les images

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule .*\.(jpg|jpeg|gif|png|bmp|csv|CSV|Csv)$ - [F,NC]
    Pour bypasser cela, l'image sans extension !!

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="print_only"><img src="../images/cecs_logo" border="0" alt="Logo" />texte</p>
    C'est pas vraiment catholique, mais cela fonctionne vive le sytème D

  3. #3
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonsoir

    Si tu penses que c'est une règle dans le fichier .htaccess, il faudrait identifier la ligne en question et de l'analyser pour comprendre la cause du blocage.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Analyse de la directive:
    NC: veut dire que la règle doit être évalue de manière case-sensitive
    F: veut dire forbidden, et renvoie une erreur HTTP/403

    Qui a donc interdit l'accès aux images et pourquoi ?
    Corrigez cette règle ou virez-là.

  5. #5
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Je n'ai pas vraiment de soucis avec cette règle, c'est standard chez mon hébergeur, je ne l'ai pas mise.
    Cela empêche les téléchargement externes des images.

    La seule chose qui m'ennuyait, est que l'image ne s'affichait pas dans le pdf créé par mpdf, il était affecté par cette règle.
    Au niveau du site proprement dit, il n'y a pas de blocage.
    Donc le soucis se pose dans le traitement de la balise image par mpdf.

    Maintenant, si dans la regex on peut ajouter que le fichier soit autorisé, pourquoi pas
    Mais ma solution fonctionne également vu que l'extension est partie, même si c'est bizarre comme méthode.

    J'ai trouvé que c'était cette règle en la commentant et que l'image était bien dans le pdf.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Probablement qu'en localhost, le script accède aux ressources telles que les images via le système de fichier, tandis que si on fait appel à un site externe alors file_get_contents fait une requête HTTP ordinaire et se heurte à cette règle Apache dont j'ai un peu de mal à comprendre l'utilité. Cela dit en passant, il n'est pas nécessaire de marquer à la fois Csv et CSV puisque la règle n'est pas case-sensitive.
    Ce n'est pas un fichier .htaccess ordinaire, c'est clairement une customization dont le contexte m'échappe

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

Discussions similaires

  1. Image non affichée dans le JPanel
    Par coolanso dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/02/2011, 10h40
  2. Données non afficher dans rapport PDF
    Par laurent_m dans le forum BIRT
    Réponses: 1
    Dernier message: 23/10/2008, 18h54
  3. Images non affichées dans applet sur serveur distant
    Par Zavonen dans le forum Applets
    Réponses: 6
    Dernier message: 04/06/2008, 19h10
  4. [Syntaxe] Image non affichée
    Par patrick_deb dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/12/2006, 12h16
  5. Rafraîchir une Image (reload) affichée dans un panel
    Par svirlot dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 09/05/2006, 12h23

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