下载PDF-失败:网络错误,PHP-FPM和Nginx

下载PDF-失败:网络错误,PHP-FPM和Nginx,php,pdf,nginx,download,Php,Pdf,Nginx,Download,我有一个下载pdf的非常简单的脚本: $path = __DIR__.'/sample_file.pdf'; $pathinfo = pathinfo($path); $fsize = filesize($path); $filename = $pathinfo['basename']; header('Content-Type: application/pdf'); header("Pragma:public"); header("Content-Disposition:attachment

我有一个下载pdf的非常简单的脚本:

$path = __DIR__.'/sample_file.pdf';
$pathinfo = pathinfo($path);
$fsize = filesize($path);
$filename = $pathinfo['basename'];

header('Content-Type: application/pdf');
header("Pragma:public");
header("Content-Disposition:attachment;filename=" . $filename);
header('Content-Length: ' . $fsize);
header("Pragma: no-cache");
@readfile($path);
exit;
这适用于小于
10mb的文件。但是任何超过这个的东西我都会出错,下载失败。已经在多个浏览器中进行了尝试,并获得了类似的结果。在所有情况下,下载都会失败

Chrome:
失败:网络错误

Firefox:
[filename].pdf.part无法保存,因为无法读取源文件。

Opera:
中断:网络错误

IE(10):
[filename]。无法下载pdf。

我知道文件路径是正确的,否则它无法处理小于5mb的文件

阅读
readfile
上的php文档()有些人建议在调用
readfile
之前禁用
output\u buffering
(php.ini中当前设置为
4096
)。我还没有尝试过,但我不相信这是解决办法

zlib.output\u compression
已禁用。我在日志中没有看到任何错误。我在Chrome inspector的网络窗格中也没有看到任何错误


我尝试过用块下载,但得到了相同的结果。我研究过类似的答案,但似乎都是特定于浏览器的,即在某些浏览器中工作,但在其他浏览器中不工作

可能您使用暂停或类似的方法,目标文件被锁定
您的安全软件可能正在扫描并锁定该文件,在暂停下载后,该文件可能仍在系统临时文件夹中。

下载需要多长时间?@bassxzero它会在几秒钟内失败。甚至都没有真正开始。