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
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 ?
Merci d'avance
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]
<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);
}
?>
[/code]
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]header('Location:'.$file); [/code]
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