好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php文件上传之$_FILES全局变量用法介绍

本文章来简单的介绍一下在php中文件图片上传时的一个$_FILES重要的全局变量的参数,有需要了解的朋友可以参考一下.

文件上传表单的处理,代码如下:

< form   action = "post.php"   enctype = "multipart/form-data"   method = "post" >   < input   name = "MAX_FILE_SIZE"   type = "hidden"   value = "1000"   />   < input   name = "upfile"   type = "file"   />   < input   type = "submit"   value = "上传文件"   />   </ form >  

我们来看看files的变量的用法:

$_FILES超级全局变量很特殊,他是预定义超级全局数组中唯一的二维数组,其作用是存储各种与上传文件有关的信息,这些信息对于通过PHP脚本上传到服务器的文件至关重要,此函数中总共有5项:

1.$_FILES["userfile"]["error"]

$_FILES["userfile"]["error"]数组值提供了与上传尝试结果有关的重要信息,总共有5个不同的返回值,其中一个表示成功的结果,另外4个表示在尝试中出现的特殊错误,返回值的名字和将在后面介绍.

2.$_FILES["userfile"]["name"]

$_FILES["userfile"]["name"]变量指定客户端机器上声明的文件最初的名字,包括扩展名,因此,如果浏览器一个名为vacation.jpg的文件,并通过表单上传,则此变量的值将是vacation.png.

3.$_FILES["userfile"]["size"]

$_FILES["userfile"]["size"]变量指定从客户端上传的文件的大小,以字节为单位,因此,在vacation.jpg文件的例子中,此函数可能赋值为5253,大约为5kb.

4. $_FILES["userfile"]["tmp_name"]

$_FILES["userfile"]["tmp_name"]变量指定上传到服务器后为文件赋予的临时名,这是存储在临时目录(由PHP指令upload_tmp_dir指定)中时所指定的文件名.

5. $_FILES["userfile"]["type"]

$_FILES["userfile"]["type"]变量指定从客户端上传的文件的mime类型,因此,在vacation.jpg文件的例子中,此变量会赋值为image/jpeg,如果上传的是PDF,则赋值为application/pdf,因为这个变量有时会得到意外的结果,所以应当在脚本中显示地进行验证.

$_FILES['myFile']['error'] 和该文件上传相关的错误代码,['error'] 是在 PHP 4.2.0 版本中增加的,下面是它的说明:(它们在PHP3.0以后成了常量)

UPLOAD_ERR_OK

值:0; 没有错误发生,文件上传成功。

UPLOAD_ERR_INI_SIZE

值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

UPLOAD_ERR_FORM_SIZE

值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

UPLOAD_ERR_PARTIAL

值:3; 文件只有部分被上传。

UPLOAD_ERR_NO_FILE

值:4; 没有文件被上传。

值:5; 上传文件大小为0.

好了下面我们来看个完整的实例,代码如下:

<html>  <body>  <form action= "upload_file.php"  method= "post"   enctype= "multipart/form-data" >  <label  for = "file" >filename:</label>  <input type= "file"  name= "file"  id= "file"  />   <br />  <input type= "submit"  name= "submit"  value= "submit"  />  </form>  </body>  </html>  //php代码   <?php  if  ((( $_files [ "file" ][ "type" ] ==  "image/gif" )  || ( $_files [ "file" ][ "type" ] ==  "image/jpeg" )  || ( $_files [ "file" ][ "type" ] ==  "image/pjpeg" ))  && ( $_files [ "file" ][ "size" ] < 20000))    { //开源软件:phpfensi.com      if  ( $_files [ "file" ][ "error" ] > 0)      {       echo   "error: "  .  $_files [ "file" ][ "error" ] .  "<br />" ;      }     else       {       echo   "upload: "  .  $_files [ "file" ][ "name" ] .  "<br />" ;       echo   "type: "  .  $_files [ "file" ][ "type" ] .  "<br />" ;       echo   "size: "  . ( $_files [ "file" ][ "size" ] / 1024) .  " kb<br />" ;       echo   "stored in: "  .  $_files [ "file" ][ "tmp_name" ];      }    }  else     {     echo   "invalid file" ;    }  ?> 

对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg.

 

 

查看更多关于php文件上传之$_FILES全局变量用法介绍的详细内容...

  阅读:64次