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 ?

-6voto

Mohsin Points 19

Vous pouvez le faire de la manière suivante :

<a href="path to PDF file">Open PDF</a>

Si le fichier PDF se trouve dans un dossier et que ce dossier n'a pas l'autorisation d'accéder directement aux fichiers qui s'y trouvent, vous devez contourner certaines restrictions d'accès aux fichiers à l'aide de la fonction .htaccess par ce moyen :

<FilesMatch ".*\.(jpe?g|JPE?G|gif|GIF|png|PNG|swf|SWF|pdf|PDF)$" >
    Order Allow,Deny
    Allow from all
</FilesMatch>

Mais maintenant, permettez juste certains les fichiers nécessaires.

J'ai utilisé ce code et il a parfaitement fonctionné.

-7voto

Ouvrez downloads.php à partir du fichier racine.

Ensuite, allez à la ligne 186 et changez-la en ce qui suit :

        if(preg_match("/\.jpg|\.gif|\.png|\.jpeg/i", $name)){
            $mime = getimagesize($download_location);
            if(!empty($mime)) {
                header("Content-Type: {$mime['mime']}");
            }
        }
        elseif(preg_match("/\.pdf/i", $name)){
            header("Content-Type: application/force-download");
            header("Content-type: application/pdf");
            header("Content-Disposition: inline; filename=\"".$name."\";");
        }

        else{
            header("Content-Type: application/force-download");
            header("Content-type: application/octet-stream");
            header("Content-Disposition: attachment; filename=\"".$name."\";");
        }

-7voto

user28864 Points 341

Voici une autre méthode pour forcer l'affichage d'un fichier dans le navigateur en PHP :

$extension = pathinfo($file_name, PATHINFO_EXTENSION);
$url = 'uploads/'.$file_name;
        echo '<html>'
                .header('Content-Type: application/'.$extension).'<br>'
                .header('Content-Disposition: inline; filename="'.$file_name.'"').'<br>'
                .'<body>'
                .'<object   style="overflow: hidden; height: 100%;
             width: 100%; position: absolute;" height="100%" width="100%" data="'.$url.'" type="application/'.$extension.'">
                    <embed src="'.$url.'" type="application/'.$extension.'" />
             </object>'
            .'</body>'
            . '</html>';

-11voto

Soit utiliser

<embed src="file.pdf" />

si l'incorporation est une option ou mon nouveau plugin, PIFF : https://github.com/terrasoftlabs/piff

-12voto

lawl Points 1

Il suffit d'ouvrir Adobe Reader, menu Modifier Préférences Internet Pour obtenir des instructions détaillées sur les différents navigateurs, consultez la page Afficher le PDF dans le navigateur | Acrobat, Acrobat Reader .

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