zoukankan      html  css  js  c++  java
  • PHP 超全局变量之$_FILES

    $_FILES——通过 HTTP POST 方式上传到当前脚本的项目的数组。


    假设我们上传文件字段name='userfile',$_FILES数组里包括:

    $_FILES['userfile']['name']      //客户端机器文件的原名称。
    $_FILES['userfile']['type']     //文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
    $_FILES['userfile']['size']     //已上传文件的大小,单位为字节。
    $_FILES['userfile']['tmp_name']   //文件被上传后在服务端储存的临时文件名。
    $_FILES['userfile']['error']      //和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。
    /**
    错误码有:
    UPLOAD_ERR_OK
    其值为 0,没有错误发生,文件上传成功。
    
    UPLOAD_ERR_INI_SIZE
    其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
    
    UPLOAD_ERR_FORM_SIZE
    其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
    eg,在表单中添加隐藏域:value值单位是字节
    <form enctype="multipart/form-data" action="test.php" method="POST">
      <!-- MAX_FILE_SIZE must precede the file input field -->
      <input type="hidden" name="MAX_FILE_SIZE" value="12" />
      <!-- Name of input element determines name in $_FILES array -->
      Send this file: <input name="userfile" type="file" />
      <input type="submit" value="Send File" />
    </form>
                    
    UPLOAD_ERR_PARTIAL
    其值为 3,文件只有部分被上传。
    
    UPLOAD_ERR_NO_FILE
    其值为 4,没有文件被上传。
    
    UPLOAD_ERR_NO_TMP_DIR
    其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。
    
    UPLOAD_ERR_CANT_WRITE
    其值为 7,文件写入失败。PHP 5.1.0 引进。
    **/
    文件被上传后,默认地会被储存到服务端的默认临时目录中,除非 php.ini 中的 upload_tmp_dir设置为其它的路径。服务端的默认临时目录可以通过更改PHP运行环境的环境变量TMPDIR来重新设置,但是在PHP脚本内部通过运行 putenv() 函数来设置是不起作用的。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的。


    文件上传可能用到的其他函数:

    is_uploaded_file:

    is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
    is_uploaded_file ( string $filename ) : bool
        参数:filename——要检查的文件名。
        返回值:成功时返回 TRUE, 或者在失败时返回 FALSE。
    
    如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如 /etc/passwd。

    move_uploaded_file:

    move_uploaded_file — 将上传的文件移动到新位置
    move_uploaded_file ( string $filename , string $destination ) : bool
        参数:filename  上传的文件的文件名;destination 移动文件到这个位置(绝对路径)

    本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。
  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/pawn-i/p/12094201.html
Copyright © 2011-2022 走看看