PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法

今天在操作php上传的时候发现了一个问题,就是当php脚步上传的文件大小超过php.ini中post_max_size的限制的时候页面不会给出提醒,文件也上传失败,这个问题感觉应该算是一个另类。

php.ini 配置对php上传文件大小的影响参数有:
       配置项                               可能值                功能描述
       file_uploads                       ON                        确定服务器上的PHP脚本是否可以接受HTTP文件上传
       memory_limit                   8M                        设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存
       upload_max_filesize        2M                        限制PHP处理上传文件的最大值,此值必须小于post_max_size值
       post_max_size                  8M                        限制通过POST方法可以接受的信息最大量

而对应的$_FILES 中error对应得错误提示有:

  文件上传时产生的错误
                                                                   0:表示没有发生任何错误,文件上传成功
                                                                   1:表示上传文件的大小超出了再PHP配置文件中upload_max_filesize选项限制的值
                                                                   2:表示上传文件大小超出了HTML表单中MAX_FILE_SIZE选项所指定的值   
                                                                   3:表示文件只被部分上传
                                                                   4:表示没有上传任何文件
由此看出php只能对upload_max_filesize这个配置项的限制做出判断,而对post_max_size则没有相应的判断,这时的页面其实是一个崩溃的状态,页面不会给出任何提示。

对于此问题,现在目前想到的方法是通过ini_get()函数获取到post_max_size配置值,然后送给前台,通过前台验证。还有一个是直接在后台验证也是先用ini_get()获取post_max_size的值,再与要上传的文件进行对比,不过这个要先通过ajax获取到文件的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值