宝塔面板文件管理器上传大文件失败是因面板自身HTTP请求体限制(默认100MB)及Nginx反代层限制所致;需修改/config.json中upload_max_size值并重启面板,同时在站点配置中添加client_max_body_size指令,最后通过实际上传和日志验证。

如果您在宝塔面板的文件管理器中尝试上传大文件时失败,提示“文件过大”或直接中断,则很可能是面板自身对Web端文件上传施加了独立限制。该限制与PHP配置无关,而是宝塔后台服务(bt-panel)内置的HTTP请求体大小阈值所致。以下是解决此问题的步骤:
一、修改宝塔面板自身的上传限制参数
宝塔面板v7.9.0及以后版本在后台服务中硬编码了文件管理器上传上限,默认为100MB。该限制由面板主进程控制,需手动编辑其配置文件生效。
1、使用SSH登录服务器,执行命令打开宝塔配置文件:
vim /www/server/panel/data/config.json
2、在文件中查找字段 "upload_max_size",若存在则将其值修改为所需大小(单位为MB,例如:2048);若不存在,则在根对象内新增一行:
"upload_max_size": 2048,
3、确保该行末尾逗号符合JSON语法(如非最后一项需加逗号,若是最后一项则不可加)
4、保存并退出编辑器(在vim中输入 :wq 回车)
5、重启宝塔面板服务使配置生效:
bt restart
二、检查并调整Nginx反向代理层限制(适用于启用SSL或反代面板的场景)
当宝塔面板通过Nginx反向代理访问(如绑定域名、启用HTTPS),Nginx会拦截超大请求体,导致文件管理器上传被拒绝,即使面板配置已放宽。
1、进入宝塔面板 → 「网站」→ 找到用于访问面板的站点(通常为面板域名或IP绑定的站点)→ 点击「配置文件」
2、在 server{} 块顶部(location / { } 外部)添加以下指令:
client_max_body_size 2048M;
3、确认该配置未被嵌套在某个 location 块内,否则不生效
4、点击右上角「保存」,然后点击「重载配置」按钮
三、验证面板上传限制是否已更新
宝塔未提供直接查看当前生效上传限制的界面,需通过实际行为与日志交叉验证。
1、在面板「文件」管理器中,尝试上传一个略小于设定值的文件(如设定2048MB,上传1900MB的zip)
2、若仍失败,查看面板错误日志:
tail -n 50 /www/server/panel/logs/request.log | grep "413"
3、若日志中出现 413 Request Entity Too Large,说明Nginx层限制仍未解除
4、若出现 upload size exceed limit 或类似提示(见于面板前端弹窗或浏览器控制台Network响应内容),说明config.json未生效或格式错误
四、临时绕过限制:使用FTP或命令行上传替代方案
当无法立即修改面板配置或需紧急传入超大文件时,可跳过文件管理器,采用底层更宽松的传输通道。
1、进入宝塔「FTP」→ 「添加FTP」,创建专用用户并绑定目标目录(如/www/wwwroot/site)
2、使用FileZilla等客户端连接,以二进制模式上传文件
3、或通过SSH执行命令上传:
scp -P 22 /local/path/largefile.zip root@your-server-ip:/www/wwwroot/site/
4、上传完成后,在文件管理器中刷新目录即可看到文件,无需经过面板上传接口










