今天升级了服务器的PHP版本,由PHP7.3升级至PHP8.1,升级结束后一切运行正常,但偶然发现选择上传视频文件的时候,会造成接收$_POST变量的值为空,但上传图片时却没有问题。最后通过查找升级前的php.ini配置文件才发现,升级前后两个配置文件中post_max_size和upload_max_filesize设置的不同,而新环境中只将upload_max_filesize设置的大一些为200M,而post_max_size设置为8M,这就是问题所在。
实际运行中一定要保证,post_max_size>upload_max_filesize,因为post_max_size也影响到文件上传,如果 POST数据尺寸大于 post_max_size,那$_POST 和 $_FILES也会为空值,之前我也是误以为post_max_size只对表单中POST的INPUT有效呢,实际不是的。另外也要设置一下max_execution_time 参数
max_execution_time = 0 //默认为30秒,改为0不限制 post_max_size = 200M upload_max_filesize = 150M