在存储在webroot外部的浏览器中打开PDF

时间:2012-11-29 16:07:57

标签: php pdf

我有一些PDF只能由会员访问(他们必须登录才能获取)。我想让它们显示在浏览器中,而是显示一个对话框,要求保存/打开文件。 PDF存储在常规根目录之外。这是代码:

$filepath='/var/www/vhosts/Reports/';
$filename='CA.pdf';
header('Content-Disposition:inline; filename="'.$filename.'"');
header('Content-type:application/octet-stream');
header('Pragma:no-cache');
header('Expires:0');
if ($file=fopen($filepath.$filename,'r')) {
fpassthru($file);
fclose($file);

我读到设置内联的处理应该修复它,但没有好处。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我试着评论你的帖子,但我是一个溢出的菜鸟。我只是想分享一些谷歌搜索结果。你试过@readfile吗?

Show a PDF files in users browser via PHP/Perl

open PDF in browser with PHP

http://php.net/manual/en/function.readfile.php

希望它有所帮助!

答案 1 :(得分:0)

内容类型应为'application / pdf',浏览器会将其识别为pdf并将其打开。

答案 2 :(得分:0)

$file = "../../somewherebehindthatroot/FileName.pdf";

if ( file_exists($file) ) {     
    
    if (copy($file, "OpenThisFile.pdf")) { echo "<br /><br /><a href='OpenThisFile.pdf'  target='_blank'>Open File...</a>"; }
            
}