PHP上传文件时 $_FILES 为空,可能的原因及解决方法

在上传比较大的 文件,如 上传视频 的时候打印 $_FILES 为空,小的文件就没问题,后来发现是因为传的文件太大,
出现这个问题的原因主要有两个:表单原因或者php设置原因:

1,表单设置问题:

上传文件的表单编码类型必须设置成 enctype="multipart/form-data"

...

2,php配置问题:

查找php.ini文件,下面是linux命令:

find / -name php.ini    

(1)在 php.ini 里查找 max_execution_time 默认脚本最大执行30秒,这里可以改为 max_execution_time = 0 ; 表示没有时间限制,或在php文件头部添加:ini_set('max_execution_time',0);

(2)修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传, 在php.ini查找 post_max_size 改为 post_max_size = 50M

(3) 很多人都会改了第二步.但上传文件时最大仍然为 8M. 这是为什么呢.我们还要改一个参数
upload_max_filesize 表示所上传的文件的最大大小。 在php.ini查找 upload_max_filesize ,默认为8M改为
upload_max_filesize = 20M ,另外要说明的是,post_max_size 大于 upload_max_filesize 为佳。

修改完配置文件后,记得重启服务,以linux为例:

service php-fpm restart
service nginx restart

你可能感兴趣的:(PHP上传文件时 $_FILES 为空,可能的原因及解决方法)