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获取到文件的大小。
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获取到文件的大小。
相关文章推荐
- PHP和Nginx 文件上传大小限制问题解决方法
- PHP和Nginx 文件上传大小限制问题解决方法
- LNMP一键安装包PHP和Niginx 文件上传大小限制问题解决方法
- PHP和Nginx 文件上传大小限制问题解决方法
- PHP和Nginx 文件上传大小限制问题解决方法
- PHP上传遇到的问题-php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
- 修改配置真正解决php文件上传大小限制问题(nginx+php)
- 通过修改配置真正解决php文件上传大小限制问题(nginx+php)
- php上传文件大小限制解决方法
- PHP上传文件大小限制解决方法
- php上传文件大小限制问题的解决
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- php 修改上传文件大小 (max_execution_time post_max_size)
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
- 【转载】解决Apache2+PHP上传文件大小限制的问题
- nginx的client_max_body_size解决nginx+php上传大文件的问题
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题(报错 http 413 error)
- php中让上传的文件大小在上传前就受限制的两种解决方法
- php 修改上传文件大小 (max_execution_time post_max_size)
- 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题