You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

大于100MB的PDF无法下载及PHP 8.1 memory_limit默认值咨询

问题1:大于100MB的PDF文件无法完成下载
  • 检查PHP核心配置参数:
    • upload_max_filesize 和 post_max_size:需设置为大于100MB的数值,若上传阶段这两个参数不足,会直接拦截大文件请求
    • max_execution_time:大文件下载需要更长的脚本执行周期,建议调高至300秒以上
    • output_buffering:若缓冲值过大,可能导致内存溢出,可设置为Off或合理的小数值
  • 检查Web服务器配置:
    • Nginx:确认client_max_body_size配置大于100MB,否则服务器会直接拒绝大文件请求
    • Apache:检查LimitRequestBody参数,需设置为大于104857600(100MB对应的字节数)
  • 优化下载代码逻辑:避免将整个PDF文件加载到内存,改用分段读取输出的方式,示例代码:
$filePath = 'path/to/target.pdf';
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.basename($filePath).'"');
header('Content-Length: '.filesize($filePath));

$fileHandle = fopen($filePath, 'rb');
while (!feof($fileHandle)) {
    echo fread($fileHandle, 8192);
    flush();
}
fclose($fileHandle);
exit;
问题2:PHP 7.3与PHP 8.1未配置memory_limit时的默认值

memory_limit的默认值分运行环境差异:

  • Web SAPI环境(如FPM、Apache模块):PHP 7.3和PHP 8.1的默认值均为128M
  • CLI环境:PHP 7.3默认值为128M,PHP 8.1默认值为-1(表示无内存限制)

可执行命令php -r "echo ini_get('memory_limit');"快速查看当前环境的实际生效值。

内容的提问来源于stack exchange,提问作者EternalSunShine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:35:20