eas*_*der 7 php pdf google-chrome
我在使用PHP阅读Chrome中的pdf文件时遇到问题.
以下代码是我在PHP中的操作方式
$path = "actually file path";
header("Pragma: public");
header("Expires: 0");
header("Content-type: $content_type");
header('Cache-Control: private', FALSE);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Disposition: inline; filename=\"$filename\"");
header('Content-Transfer-Encoding: binary');
header('Content-Length' . filesize($path));
ob_clean();
flush();
readfile($path);
Run Code Online (Sandbox Code Playgroud)
在这里,我将Content-Disposition设置为内联.因为如果用户浏览器具有内置pdf查看器插件,我想显示pdf文件.您可能知道,Chrome内置了pdf查看器.
问题是我在服务器上有一堆pdf文件.Chrome只能查看其中一些内容.我无法弄清楚为什么其他人不能以同样的方式工作.我检查了每个文件的权限.看起来不是许可问题.
有谁知道问题是什么?谢谢.
小智 12
我一直在努力解决同样的问题.这与我在各种浏览器中获得一致结果非常接近.我认为你可能遇到问题的原因是,如果某些PDF文件太大而无法正确处理readfile().试试这个:
$file = "path_to_file";
$fp = fopen($file, "r") ;
header("Cache-Control: maxage=1");
header("Pragma: public");
header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=".$myFileName."");
header("Content-Description: PHP Generated Data");
header("Content-Transfer-Encoding: binary");
header('Content-Length:' . filesize($file));
ob_clean();
flush();
while (!feof($fp)) {
$buff = fread($fp, 1024);
print $buff;
}
exit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42476 次 |
| 最近记录: |