php上传文件数量限制需修改php.ini中的max_file_uploads(默认20),同时调整post_max_size、upload_max_filesize等关联参数,并重启apache生效。

PHP上传文件数量限制在哪改
关键在 php.ini 里,不是 Apache 或 XAMPP 控制面板能调的。XAMPP 启动后用的是它自带的 PHP 配置文件,路径通常是 C:\xampp\php\php.ini(Windows)或 /Applications/XAMPP/xamppfiles/etc/php.ini(macOS)。别去改 httpd.conf 或控制面板里的“PHP Settings”——那只是显示信息,不生效。
找到并修改 max_file_uploads 这一项
打开 php.ini,搜索 max_file_uploads。默认值一般是 20,表示单次请求最多允许上传 20 个文件(无论用 <input type="file" multiple> 还是多个 <input type="file">)。
修改时注意:
- 直接改数值,比如设为
max_file_uploads = 50 - 别加引号、别写成
max_file_uploads = "50",PHP 不认字符串 - 该指令是 PHP_INI_ALL 类型,运行时可改,但建议只在
php.ini里设,避免用ini_set()失效(某些 SAPI 下不支持) - 改完必须重启 Apache(XAMPP 控制面板点 “Stop” 再 “Start”),否则不生效
顺手检查关联限制,不然改了也白改
max_file_uploads 不是唯一瓶颈。常见连带失效场景:
-
post_max_size:整个 POST 请求体上限,必须 ≥ 所有上传文件总大小 + 其他字段。比如要传 50 个 2MB 文件,至少设post_max_size = 100M -
upload_max_filesize:单个文件上限,和max_file_uploads无关,但常被一起调高 -
max_execution_time和max_input_time:大文件或大量文件上传容易超时,尤其网络慢时,建议同步调高 - 浏览器本身也有并发上传数限制(如 Chrome 对同一域名约 6 个连接),但这和 PHP 层的
max_file_uploads无关,别混淆
验证是否生效的最快方式
别靠前端多选测试——浏览器可能限制 UI,但 PHP 拦截才是真门槛。写个最小验证脚本:
<?php var_dump(ini_get('max_file_uploads')); ?>
访问这个 PHP 文件,输出应是你刚设的数值(如 string(2) "50")。如果还是 "20",说明:
- 没改对
php.ini文件(XAMPP 可能加载了别的配置,用phpinfo()看 “Loaded Configuration File” 路径) - 没重启 Apache
- 改的是
php.ini-development或php.ini-production副本,而实际加载的是另一个
多文件上传逻辑复杂的地方往往不在数量限制本身,而在临时文件清理、$_FILES 数组索引偏移、以及前端 JavaScript 读取 FileList 长度时与后端校验不一致——这些得靠代码兜底,不能只依赖 max_file_uploads。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











