您的位置:首页 > 编程语言 > PHP开发

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

2017-09-11 23:33 946 查看
今天在操作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获取到文件的大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: