修改php文件上传的大小限制upload_max_filesize

Question

当php脚本上传的文件大小超过php.ini中post_max_size,upload_max_filesize的限制的时候页面不会给出提醒,文件也上传失败。
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文件的位置

在服务器web根目录下面新建一个php文件

echo phpinfo();

找到:
修改php文件上传的大小限制upload_max_filesize_第1张图片
第二行就是php.ini的位置了,打开文件之后根据第一步描述的修改值就行了。

你可能感兴趣的:(php)