windows 下 php 7.4 上传文件大小限制需同步修改 php.ini 四项参数(upload_max_filesize、post_max_size、memory_limit、max_execution_time)及 iis web.config 中 requestlimits 和 httpruntime,再重启 fastcgi 才生效。

Windows 系统下 PHP 7.4 修改上传文件大小限制,不能只改 upload_max_filesize 这一项。必须同步调整 PHP 层和 Web 服务器层(IIS 或 Apache/Nginx)的配置,否则上传仍会失败——常见表现是 $_FILES 为空、返回错误码 1 或直接 404/413/500。
确认当前生效的 php.ini 路径
PHP 7.4 在 Windows 上可能有多个 php.ini(如 CLI 版本、IIS FastCGI 版本),改错文件等于白改:
- 新建一个
info.php,内容为<?php phpinfo(); ?> - 用浏览器访问该页面,在页面中搜索 Loaded Configuration File
- 找到的路径才是 IIS 实际加载的 php.ini,例如:
C:\php\php-7.4.33\php.ini
修改 php.ini 中的关键参数(单位用 M,不加引号)
以下四项需同时设置,且满足大小关系:
将提醒同步至 Windows/Outlook 日历。用户提及「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时触发。支持Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。
-
upload_max_filesize = 500M:单个文件最大允许体积 -
post_max_size = 512M:整个 POST 请求体上限,必须 ≥upload_max_filesize -
memory_limit = 512M:脚本可用内存,建议 ≥post_max_size,尤其处理图片或 ZIP 时 -
max_execution_time = 600和max_input_time = 600:避免大文件上传中途超时中断 -
file_uploads = On:确保未被意外关闭
同步调整 IIS 请求限制(针对 IIS + FastCGI 场景)
IIS 会在 PHP 接收请求前就截断数据,默认只允许约 30MB。需在网站根目录的 web.config 中配置:
- 在
<system.webserver><security><requestfiltering></requestfiltering></security></system.webserver>下添加:<requestlimits maxallowedcontentlength="524288000"></requestlimits>(单位字节,524288000 = 500MB) - 在
<system.web></system.web>下添加:<httpruntime maxrequestlength="512000" executiontimeout="600"></httpruntime>(maxRequestLength单位是 KB)
重启并验证是否真正生效
改完不重启 = 没改:
- 在 IIS 管理器中,进入「FastCGI 设置」→ 找到 PHP 7.4.33 对应的可执行路径 → 右键「重新激活」
- 刷新
info.php页面,确认upload_max_filesize和post_max_size显示为你设的值 - 在 IIS 管理器中选中站点 → 双击「配置编辑器」→ 展开
system.webServer/security/requestFiltering/request,核对maxAllowedContentLength是否更新
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










