gpt4 book ai didi

php - Chrome 在内联 PDF 上有 "Failed to load PDF document"错误消息

转载 作者:可可西里 更新时间:2023-11-01 12:48:01 26 4
gpt4 key购买 nike

我在使用 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);

在这里,我将 Content-Disposition 设置为内联。因为如果用户浏览器有内置的 pdf 查看器插件,我想显示 pdf 文件。您可能知道,Chrome 有内置的 pdf 查看器。

问题是我的服务器上有一堆 pdf 文件。 Chrome 只能查看其中的一部分。我不明白为什么其他人不能以同样的方式工作。我检查了每个文件的权限。看起来不是权限问题。

有没有人知道是什么问题?谢谢。

最佳答案

我一直在努力解决同样的问题。这与我在浏览器中获得的一致结果一样接近。我认为您可能遇到问题的原因是如果某些 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;

关于php - Chrome 在内联 PDF 上有 "Failed to load PDF document"错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5670785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com