对上传的文件进行各种判断,用的就是这个全局变量$_FILE,$_FILE是一个数组,他包含了所有上传文件的信息($HTTP_POST_FILES包含相同的初始信息,但不是超全局信息。注意$HTTP_POST_FILES和$ _FILES是不同的变量)。
$_FILE数组中美工元素所对应的含义如下表所示:
元素名
说明
$_FILE["filename"]["name"]
存储上传文件的文件名,如:text.txt、img.jp
$_FILE["filename"]["size"]
存储上传文件的大小,单位为字节
$_FILE["filename"]["tmp_name"]
存储文件再临时目录中使用的文件名,因为文件再上传时,首先要将其以临时文件的身份保存在临时目录中。
$_FILE["filename"]["type"]
被上传文件的MIME类型,MIME类型规定各种文件格式的类型。每种MIME类型都是由“/”分割的主类型和子类型构成。如“image/png”,主类型为“图像”,子类型为png格式的文件;而“text/html”代表了文本的HTML文件。
$_FILE["filename"]["error"]
由文件上传导致的错误代码,PHP4.2.0版本新增的内容,返回值有5种:
0:表示没有任何错误,文件上传成功
1:表示上传文件的大小超出了PHP配置的允许上传最大值,就是upload_max_filesize设定的值
2:表示上传文件大小超出了HTML表单中MAX_FILE_SIZE选项所指定的值
3:表示文件只被上传了一部分
4:表示没有上传任何文件
在$_FILE数组元素中,常用到的是$_FILE["filename"]["name"]、$_FILE["filename"]["size"]、$_FILE["filename"]["tmp_name"],通过这三个元素的判断可以完成文件名称的获取,判断上传文件的格式(上传文件名后缀可以获取格式的哟),判断上传文件的大小。
示例代码:
HTML
文件名:
PHP
var_dump($_FILES);
点击提交按钮后,打印输出结果如下所示:
array(1) {
["file"]=>
array(5) {
["name"]=>
string(6) "11.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(53) "C:\Users\Administrator\AppData\Local\Temp\php2BFE.tmp"
["error"]=>
int(0)
["size"]=>
int(14365)
}
从上面的数据可以看出,上传文件的所有信息都存放再$file数组中,透明通过移动临时文件既可以将上传的文件放到指定位置。