VIP福利
主页 > 建站问题 > 故障问题 > PHP文件上传全局变量$_FILE应用说明

推荐文章

PHP文件上传全局变量$_FILE应用说明

对上传的文件进行各种判断,用的就是这个全局变量$_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数组中,透明通过移动临时文件既可以将上传的文件放到指定位置。