对上传的文件进行各种判断,用的就是这个全局变量$_FILE,$_FILE是一个数组,他包含了所有上传文件的信息($HTTP_POST_FILES包含相同的初始信息,但不是超全局信息。注意$HTTP_POST_FILES和 […]
对上传的文件进行各种判断,用的就是这个全局变量$_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
1
2
3
4
5
|
< form method = "post" action = "demo4.php" enctype = "multipart/form-data" > < label for = "file" >文件名:</ label > < input type = "file" name = "file" id = "file" /> < input type = "submit" name = "submit" value = "提交" /> </ form > |
PHP
1
|
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数组中,透明通过移动临时文件既可以将上传的文件放到指定位置。