PHP 文件上传配置指南
一、PHP 配置文件(php.ini)设置
1. post_max_size —— 表单提交数据上限
- 作用:限制整个表单提交的数据总量,而非单个文件的大小
- 默认值:8M
- 建议:设置为所需大小,且应大于 upload_max_filesize
2. file_uploads —— 上传开关
- 确认
file_uploads = on,允许通过 HTTP 上传文件
3. upload_tmp_dir —— 上传临时目录
- 作用:指定文件上传至服务器后的临时存储位置
- 未设置时使用系统默认临时文件夹
- 若系统报错提示 "××× 临时目录 ×××" 相关错误,需配置一个有效目录;无报错则无需处理
4. upload_max_filesize —— 单个文件大小上限
- 默认值:2M
- 注意:此参数受控于 post_max_size。即使 upload_max_filesize 设置为 1G,若 post_max_size 仅为 2M,大于 2M 的文件依然无法上传
5. 上传大于 8M 文件时的附加配置
表格
| 参数 | 建议值 | 默认值 | 作用 |
|---|---|---|---|
| max_execution_time | 600 | 30 秒 | 每个 PHP 页面的最大运行时间(秒) |
| max_input_time | 600 | 60 秒 | 每个 PHP 页面接收数据的最大时间(秒) |
| memory_limit | 999999M | 8M | 每个 PHP 页面所需的最大内存 |
二、服务器层上传大小限制
IIS 配置
- 打开 IIS 管理器,找到 Default Web Site,先停止站点
- 双击 "请求筛选" 打开配置页
- 点击右侧 "编辑功能设置",打开 "编辑请求筛选设置" 对话框
- 其中 "允许的最大容量长度" 默认值为
30000000(30M),修改为所需大小 - 启动 IIS
Nginx 配置
- 修改
nginx.conf中的 http 段,添加或调整:
client_max_body_size 1024m; # 示例:1024MB
Apache 配置
- 在
.htaccess或httpd.conf中加入:
LimitRequestBody 1024000000
三、重启 Web 服务
完成上述配置后,重启 Web 服务使修改生效。
