结论:超过限制的根子在 PHP 配置,改 php.ini 里的 upload_max_filesize 和 post_max_size 即可,后台那套扩展名白名单只管格式、不管体积。

① 宝塔面板进「软件商店 → 已安装 → PHP → 设置 → 配置修改」,找到 upload_max_filesize(单个文件上限)和 post_max_size(整个表单上限),把后者设得比前者略大,例如 32M 和 30M。宝塔默认只有 2M,手机照片很容易就超,保存后记得重载 PHP 或重启服务。

② 如果服务器前面套了 Nginx,还要把 client_max_body_size 一起调大,否则请求会先被 Nginx 拦成 413,PHP 那边改得再大也没用;Apache 环境一般不用额外设置。

③ 顺手确认 uploads 目录可写,属主是运行 PHP 的那个用户,权限 755 通常就够,目录不可写同样传不上去。

④ 后台「系统设置 → 上传」里的「允许的扩展名」和「附件允许的扩展名」是两个独立字段,只决定格式放不放行,别把体积问题误当成格式问题去改。上传失败时页面会写明具体原因(超过 PHP 上限、白名单不符、目录不可写),照着提示排查最快。