当“在浏览器中显示PDF”选项未选中时,是否有一种方法强制PDF文件在浏览器中打开?

我尝试使用嵌入标签和一个iframe,但它只有当该选项被选中时才会工作。

我该怎么办?


当前回答

要么使用

<embed src="file.pdf" />

如果嵌入是一个选项或我的新插件,PIFF: https://github.com/terrasoftlabs/piff

其他回答

对于大文件,你需要让你的输出缓冲区开始添加

ob_start ();//在开始

. ./ /你的代码

Ob_clean();//在文件的末尾

从rootfile打开downloads.php。

然后在第186行修改如下:

        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."\";");
        }

下面是在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>';

如果你链接到一个。pdf文件,它会在浏览器中打开。 如果该框未选中,它应该链接到一个。zip以强制下载。

如果.zip文件不是一个选项,那么使用PHP中的头文件强制下载

header('Content-Type: application/force-download'); 
header('Content-Description: File Transfer'); 

我也有同样的问题,上面的大部分答案应该可以解决你的问题。不幸的是,即使我在响应中收到了内容类型和内容处理标题,但我的pdf仍然是被下载而不是被查看。经过几个小时的头脑风暴和尝试。

罪魁祸首是火狐,在某种程度上是我。紧张的笑声

默认情况下,当你在firefox中打开一个pdf文件时,它会弹出一个窗口,让你保存pdf文件或直接打开它,还有一个复选框告诉你从现在开始自动执行这个操作,猜猜是谁选择了它。

由于这个错误,我的pdf文件被下载而不是被查看,即使有所有必要的标题响应。这是一个简单的错误,但却花费了我大量的时间。

要解决这个问题,只需进入设置,搜索应用程序,并将pdf设置更改为您需要的任何设置。