最近刚接触IIS服务器,在使用php上传大文件的时候,遇到了一些问题。通过查阅网上资料进行了总结,希望对各位有帮助。
第一步,检查PHP的配置。
打开php.ini配置文件
1.file_uploads
设为On,允许通过HTTP上传文件
2.upload_tmp_dir
文件上传至服务器时用于临时存储的目录,如果没指定,系统会使用默认的临时文件夹(我的机器是/tmp)。
3.upload_max_filesize
允许上传文件大小的最大值,默认为2M。
4.post_max_size
Php可接收的post数据的最大值(包括表单里的所有值的总合),默认为8M。
5.memory_limit
每个php所最占的最大内存数,这个值要大于允许上传的文件大小。
6.max_execution_time
每个php运行的最长时间(秒),默认30秒。
7.max_input_time
Php解析POST/GET数据的最长时间(秒),默认60秒。
设为On,允许通过HTTP上传文件
2.upload_tmp_dir
文件上传至服务器时用于临时存储的目录,如果没指定,系统会使用默认的临时文件夹(我的机器是/tmp)。
3.upload_max_filesize
允许上传文件大小的最大值,默认为2M。
4.post_max_size
Php可接收的post数据的最大值(包括表单里的所有值的总合),默认为8M。
5.memory_limit
每个php所最占的最大内存数,这个值要大于允许上传的文件大小。
6.max_execution_time
每个php运行的最长时间(秒),默认30秒。
7.max_input_time
Php解析POST/GET数据的最长时间(秒),默认60秒。
确认以上配置都可以之后,就基本能确保PHP配置没问题了。这时候应该还不能上传大概28M以上的文件。(错误提示:404找不到页面)
第二步:修改IIS服务器 fastCgi 模式运行PHP 上传文件大小限制
打开系统盘找到 C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml,右击打开文件,Ctrl+F,然后输入""
将defaultValue多加几个0。假如提示没有权限,就到该文件的“属性”把只读去掉,假如提示你没有权限,就点高级,将TrustedInstaller添加进来,然后再编辑那里把所有用户的权限改成“完全控制”。
到这里一般就可以了。假如还有问题再继续。
第三步:继续修改php.ini的配置。(假如提示 500内部服务器出错之类的问题)
log_errors = Off
display_errors = On
error_reporting = E_ALL & ~E_NOTICE