在上传比较大的 文件,如 上传视频 的时候打印 $_FILES 为空,小的文件就没问题,后来发现是因为传的文件太大,
出现这个问题的原因主要有两个:表单原因或者php设置原因:
1,表单设置问题:
上传文件的表单编码类型必须设置成 enctype="multipart/form-data"
<form action="" method="post" enctype="multipart/form-data">
...
</form>
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