PHP+IIS 修改上传文件大小
因业务需要,上传文件100M。
修改如下:
一、PHP.ini文件修改内容
1、PHP上传的文件放置的临时目录
upload_tmp_dir
【说明】该路径默认为C盘,确保有足够的空间和写入权限。
2、设置在强制终止脚本前PHP等待脚本执行完毕的时间
max_execution_time
【说明】变量 max_execution_time 设置了在强制终止脚本前PHP等待脚本执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态时此变量非常有用。
然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件),这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增大,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭,例如设置为 90 秒。
【注意】在php函数中还有个set_time_limit 函数,和以上这个设置的作用是相同的,这两者的区别就是 以上是在 php.ini 文件中设置的,而set_time_limit 是写在php文件中的。所以也可以通过在页面中用 set_time_limit 设置程序的最长
执行时间,比如无限制即:set_time_limit(0);
3、允许通过 HTTP 进行文件上传
file_uploads = On 默认值为on,意思是允许通过 HTTP 进行文件上传,此选项不能设置为OFF。
4、设定文件上传的大小的最大值
upload_max_filesize
【注意】设定文件上传的大小的最大值,php.ini配置文件中的默认文件上传大小为2M,php初学者容易犯的一个错误是在编写文件上传功能时通过设置上传文件最大大小的表单区域,即允许上传文件的最大值,max_file_size(隐藏值域)的
值来规定上传文件的大小,其实一般别人可以绕过这个值,所以安全起见,最好是在 php.ini 配置文件中配置 upload_max_filesize 选项,设定文件上传的大小。默认 upload_max_filesize = 2M,即文件上传的大小为2M,如果你想上传超过2M
的文件,比如100M,你必须设定upload_max_filesize = 100M。
5、客户端通过POST方法进行一次表单提交时PHP程序所能够接收的最大数据量
post_max_size
【说明】这个值也必须足够大。这个变量也是一个同表单提交相关的变量,它限制的是客户端通过POST方法进行一次表单提交时PHP程序所能够接收的最大数据量。一般情况下,将此值的值设置的比 upload_max_filesize 略大即可,比如要上传100MB的文件,此值可以设置为 101MB。
6、接收数据时间进行限制
max_input_time
【说明】此变量可以以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在网络比较慢的情况下,则需要增加此值以增大接收数据所需要的时间,比如将此值设置为 90秒。
7、PHP允许定义内存使用限额
memory_limit
【说明】也必须足够大,为了避免正在运行的脚本大量使用系统可用内存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本程序可以使用的最大内存容量。变量memory_limit的值应当适当大于post_max_size的值。
二、iis修改最大上传文件限制的方法
IIS7.0版本默认限制上传文件大小为30000000字节(约28.6M)。打开C:\Windows\System32\inetsrv\config\schema\IIS_schema.xml,找到如下内容:
<element name="requestLimits">
<attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />
<attribute name="maxUrl" type="uint" defaultValue="4096" />
对maxAllowedContentLength的值进行修改,该值单位为字节:
例如修改为120M,那么128*1024*1024=125829120
<attribute name="maxAllowedContentLength" type="uint" defaultValue="125829120" />
【注意】IIS_schema.xml文件为只读文件,默认是无法修改的,即使是系统管理员也不行,必需修改对应的操作权限,再去掉其只读属性才可修改。
操作:
三、PHP代码中的限定。
php代码如果进行限定,那么对应限定大小需进行调整。