afficher un pdf dans un nouvel onglet

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher un pdf dans un nouvel onglet

Re: afficher un pdf dans un nouvel onglet

par @rthur » 30 juil. 2019, 13:57

"Erreur - Échec de chargement du document PDF."
En général ça veut dire que tu as mis un header('Content-type: application/pdf') mais que derrière ce n'est pas un fichier PDF valide que tu envoies, probablement parce que du HTML affiché ou des messages d'erreur.

Pour debuguer facilement, mets en commentaire ce header, et regarde si tu as des messages d'erreurs ou du HTML qui traine. Si tu n'as que des caractères incompréhensibles, c'est le binaire du PDF et donc ça devrait être bon.

afficher un pdf dans un nouvel onglet

par faerieMoonlight » 30 juil. 2019, 10:56

Bonjour,
pour contourner le blocage de popup généré en javascript avec "window.open", je souhaite afficher un pdf dans un nouvel onglet avec du php et "header()", le choix du pdf s'effectuant à partir d'une liste déroulante.

voici mon code :

Code : Tout sélectionner

<form method="post" action="index.php"> <select name="filename"> <optgroup label="EUROPE"> <option value="https://www.monsite.fr/monpdfFR.pdf">Français </option> <option value="https://www.monsite.fr/monpdfEN.pdf">Anglais </option> </optgroup> </select> <input type="submit" value="télécharger" /> </form> <?php if(isset($_POST['filename'])){ $file = $_POST['filename']; header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); } ?>
La création d'un nouvel onglet dans le navigateur a bien lieu, les urls des pdfs sont valides, mais pas moyen de voir le pdf sélectionné s'afficher correctement. UN message d'erreur suivant apparait : "Erreur - Échec de chargement du document PDF."

Par contre quand j'utilise uniquement cette ligne

Code : Tout sélectionner

header('Location:'.$file);
le pdf s'affiche bien mais dans le même onglet, ce que je souhaiterai éviter.

N'ayant pas trouver de ressources sur ce cas précis, je partage mon problème en espérant trouver de l'aide ! auriez-vous des idées ? :priere: :priere: :priere:

Merci d'avance