[Résolu] Télécharger / Afficher des fichiers PDF

  • WordPress :5.2
  • Statut : résolu
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #2298162
    boutmos
    Participant
    Initié WordPress
    2 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : Php v7.0.33 / mysql  Ver 15.1 Distrib 10.1.41-MariaDB
    • Thème utilisé : Mon propre thème
    • Extensions en place : AuthLDAP, User Role Editor, WP Githuber MD, WP Mail SMTP
    • Nom de l’hébergeur : Server Virtuel sur mon lieu de travail
    • Adresse du site : privée (VPN access only)

    Problème(s) rencontré(s) :

    J’ai créée mon propre thème pour réaliser un intranet a but pédagogique pour des enseignements en informatique. Je souhaite mettre en place les trombinoscopes des formations. J’ai donc réalisé la mécanique pour uploader les fichiers PDF dans un répertoire à la racine de mon thème /trombinoscopes/

    Le problème c’est que je n’arrive pas à afficher les PDF téléversés :

    <a href="<?= home_url( '/trombinoscopes/' ) . $nomFichierTrobino ?>" target="_blank" class="btn btn-secondary" role="button" aria-pressed="true">Voir le trombinoscope</a>

    J’ai pensé au début que çà venait des ACL que j’ai mis en place. Mais en les désactivant, j’ai ce problème (voir pièce jointe).

    Le problème semble venir du fait que wordpress ne connait pas la ‘route’ https://nomdedomaine/trombinoscope/fichier.pdf

    Cordialement.

    • Ce sujet a été modifié le il y a 4 jours et 1 heure par boutmos.
    • Ce sujet a été modifié le il y a 4 jours et 1 heure par boutmos.
    • Ce sujet a été modifié le il y a 4 jours et 1 heure par boutmos.
    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2298204
    boutmos
    Participant
    Initié WordPress
    2 contributions

    Re,

    Problème résolu. J’ai créée une page trombinoscopes.php à la racine de mon thème avec comme entête :

    <?php
    /**
     * Template Name: Show trombinoscopes
     */
    ?>

    J’ai donc créée une page dans le back office de WordPress que j’ai nommée ‘Trombinoscopes’ et que j’ai associé au modèle ‘Show trombinoscopes’

    J’ai inséré ce code suivant dans trombinoscopes.php :

    <?php
    /**
     * Template Name: Show trombinoscopes
     */
    ?>
    
    <?php
    $file = '/var/www/html/wp-content/themes/fil/trombinoscopes/' . $_GET['formation'];
    
    if (file_exists($file)) {
      header('Content-Description: File Transfer');
      header('Content-Type: application/pdf');
      header('Content-Disposition: inline; filename="'.basename($file).'"');
      header('Expires: 0');
      header('Cache-Control: must-revalidate');
      header('Pragma: public');
      header('Content-Length: ' . filesize($file));
      readfile($file);
      exit;
    }
    ?>

    Puis dans mon template-part pour visualiser le trombinoscope choisi, j’ai adapté mon lien :

    <a href="<?= home_url( '/trombinoscopes/' ) . '?formation=' . $nomFichierTrobino ?>" target="_blank" class="btn btn-secondary" role="button" aria-pressed="true">Voir le trombinoscope</a>

    Me reste à mettre quelques test de sécurité pour restreindre les téléchargement/affichage aux personnes concernées.

    Merci.

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.