Home > Article > Backend Development > PHP中表单没有问题但$_FILES为空怎么办?
PHP中表单没有问题,但“$_FILES”为空的解决方法:首先在form中加代码为“enctype="multipart/form-data”;然后开启“file_uploads”并设置“file_uploads=on”即可。
PHP中表单没有问题但是$_FILES为空的解决办法
在文件上传中$_FILES接收不到值的情况有很多种,总结一下常见的错误有下边几种,也是大家在使用中容易犯的错误。
1、在form中忘记加enctype="multipart/form-data"属性,这个是最常犯的错误;
2、忘记在php.ini中打开文件上传的功能file_uploads=on
一、form中忘记加enctype="multipart/form-data"
在学习html时大家都知道form是用来向服务器提交数据最常用的方式,而在很多数据提交时都会有文件的上传。当然文件流的上传需要一些特殊的处理。
<form action="" method="post" enctype="multipart/form-data"> ...... </form>
为什么要加enctype="multipart/form-data"呢?这要来看看form中对于enctype属性的解释
值 | 描述 |
---|---|
application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form-data |
不对字符编码。 在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 "+" 加号,但不对特殊字符编码。 |
所以在文件上传时必须加multipart/form-data
二、在php.ini中必须开启file_uploads=on
该选项的作用是配置是否允许上传文件。如果设置为off则不允许上传文件所以就接收不到$_FILES的值,所以如果要做文件上传则必须开启。
这个参数是在PHP的配置文件php.ini中
更多相关知识,请访问 PHP中文网!!