我将nginx 1.14.1与PHP结合使用,并且调用时出现问题,应导致文件下载。
PHP应用程序产生一个状态码为200的响应,并且文件内容被转储到正文中,但是从nginx上我得到以下答案(头)
HTTP/2 403
server: nginx/1.14.1
date: Tue, 23 Apr 2019 07:19:19 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
x-powered-by: PHP/7.2.17
strict-transport-security: max-age=31536000
我的PHP应用程序生成的标头未包含在nginx响应中。
Firefox产生错误“ /Users/myuser/Downloads/NBPKD9pN.mp4.part无法保存,因为无法读取源文件。请重试,或与服务器管理员联系。”
应下载的文件大小约为1 GB。
PHP应用程序的其余部分工作正常(不会导致403s)。
提供我完整的Nginx配置是否有帮助?
当我将同一文件放入Web根目录并直接调用(不使用PHP)时,下载工作正常。
编辑: PHP代码大致如下:
header('Content-Type: video/mp4');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Content-Length: ' . $filesize));
readfile($file);
die();
答案 0 :(得分:0)
问题是PHP应用程序在较早的时候就使用过ob_start(),因此readfile()的输出进入了内存,超出了限制。