286 votes

Comment puis-je forcer les fichiers à s'ouvrir dans le navigateur au lieu de les télécharger (PDF) ?

Existe-t-il un moyen de forcer les fichiers PDF à s'ouvrir dans le navigateur lorsque l'option "Afficher le PDF dans le navigateur" n'est pas cochée ?

J'ai essayé d'utiliser la balise embed et un iframe, mais cela ne fonctionne que lorsque cette option est cochée.

Qu'est-ce que je peux faire ?

1voto

Nick Kongk. Points 37

Ce qui suit fonctionne bien sur firefox, mais PAS sur chrome et les navigateurs mobiles.

Content-Type: application/pdf
Content-Disposition: inline; filename="filename.pdf"

Pour corriger l'erreur de chrome et des navigateurs mobiles, procédez comme suit :

  • Stockez vos fichiers dans un répertoire de votre projet
  • Utilisez la visionneuse PDF de Google

Google PDF Viewer peut être utilisé comme tel :

<iframe src="http://docs.google.com/gview?url=http://example.com/path/to/my/directory/pdffile.pdf&embedded=true" frameborder="0"></iframe>

0voto

Alexander Points 45

Si vous avez Apache, ajoutez ceci au .htaccess fichier :

<FilesMatch "\.(?i:pdf)$">
    ForceType application/octet-stream
    Header set Content-Disposition attachment
</FilesMatch>

0 votes

Comment ajouter plusieurs extensions ? Je veux ajouter l'extension DOC et XLS également. Veuillez me suggérer. Merci d'avance.

9 votes

Cela fait le contraire de ce qui est demandé

0voto

Fabio Points 1

Je crois que le seul navigateur qui ne respecte pas ces paramètres est Chrome, car il possède une visionneuse PDF intégrée.

0voto

Davida Balloon Points 1

Oh, c'est si simple. J'étais coincé sous le même problème. et puis http://www.techbrother.com/2014/01/09/display-pdf-browser/ m'a aidé. Rapide et facile

-1voto

trangsinh1952 Points 19

Oups, il y avait des fautes de frappe dans mon message précédent.

    header("Content-Type: application/force-download");
    header("Content-type: application/pdf");
    header("Content-Disposition: inline; filename=\"".$name."\";");

Si vous ne voulez pas que le navigateur demande à l'utilisateur de le faire, utilisez "inline" pour la troisième chaîne au lieu de "attachment". Inline fonctionne très bien. Le PDF s'affiche immédiatement sans demander à l'utilisateur de cliquer sur Ouvrir. J'ai utilisé "attachment" et cela invite l'utilisateur à ouvrir et à enregistrer. J'ai essayé de modifier les paramètres du navigateur, mais cela n'empêche pas l'invite.

11 votes

Quel poste précédent ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X