在Windows IIS下使用PHP出现无法上传文件的问题,通常有以下几个原因:
1. PHP配置文件php.ini中file_uploads没有开启在php.ini中找到file_uploads选项,设置为:
file_uploads = On
此设置开启PHP文件上传功能。
2. PHP进程用户权限不足PHP进程默认使用IUSR用户,此用户对网站目录没有写入权限,导致无法上传文件。解决方法是:- 给网站目录IIS_WPG组和IUSR用户写入权限
icacls D:\website /grant IIS_WPG:(OI)(CI)F /grant IUSR:(OI)(CI)F
– 或更改PHP进程使用的用户,设置PHP运行时使用高权限账户,如:在PHP管理工具中(PHP Manager for IIS等)选择“Identity”选项卡,将“Run PHP executable as”设置为高权限用户,如Administrator。
3. 上传目录没有写入权限如果上传路径在PHP配置(php.ini)或代码中指定,还需要确保执行PHP进程的用户对该目录有写入权限,否则会导致上传失败。授予目录相应用户和用户组写入权限:
icacls D:\upload /grant IIS_WPG:(OI)(CI)F /grant IUSR:(OI)(CI)F
4. 上传文件大小超过php.ini中upload_max_filesize限制在php.ini中找寻upload_max_filesize选项,增大其值,如:
upload_max_filesize = 50M
增大此值可以允许上传更大体积的文件。
5. IIS请求长度限制过小在IIS管理器中,选择“请求限制”,将“允许的内容长度”的值增大,如30000000字节。这可以增大IIS处理请求的长度上限,否则过大请求会被拒绝。
以上是IIS下PHP上传文件失败的常见5个原因及相应解决方法。检查PHP配置、用户权限和IIS请求限制,设置相应参数即可解决大多数PHP上传问题。
联系信息:邮箱aoxolcom@163.com或见网站底部。
请登录后发表评论
注册
社交帐号登录