本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。
php 接收不到file怎么办?
php 获取不到$_file常见原因
今天在做for表单上传的时候出现一个奇怪的问题,表单提交获取不到了,连普通的字段都获取不到了,因为做了文件上传所以去看了for表单有没有加enctype="multipart/form-data"属性,发现也加了;
后来又去php.ini中打开文件上传的功能file_uploads=on发现也是开启的,苦思冥想调试了半天还是不行,后面想到自己做的另外一个项目也是上传图片的那个是可以获取到数据的,就去看了一下,发现代码也没什么区别,拿到这边还是行不通,后面就去了php.ini里面看配置看是不是有什么不对,看到了upload_max_filesize =2M(即文件上传的大小为2M)因为我上传文件超过2M,我把upload_max_filesize =2M改了upload_max_filesize =64M,重启服务器,发现还是不行,后面想了一下是不是表单提交的时候还有限制,后面有趣php.ini里面找到post_max_size=8M,(其代表允许POST的数据最大字节长度,默 认为8M),修改为post_max_size=64M,重启服务,发现可以了。
总结:
php.ini配置文件中的默认文件上传大小为2M,默认upload_max_filesize = 2M,即文件上传的大小为2M,如果你想上传超过8M的文件,如30M,你必须配置upload_max_filesize = 30M。
但是光设置upload_max_filesize = 30M还是无法实现文件的上传功能,你必须修改php.ini配置文件中的post_max_size选项,其代表允许POST的数据最大字节长度,默 认为8M,所以还要设置post_max_size=30M。
如果POST数据超出限制,那么$_POST和$_FILES将会为空。要上传大文件,你必须设定该选项值大于或等于 upload_max_filesize指令的值。