首页 >后端开发 >php教程 >php文件上传-配置php.ini文件以及预定义变量$_FILES

php文件上传-配置php.ini文件以及预定义变量$_FILES

黄舟
黄舟原创
2017-04-18 11:38:153809浏览

php文件上传-配置php.inn文件以及预定义变量$_FILES

文件上传可以通过 HTTP协议来实现。要使用文件上传功能,首先要在php.ini配置文件中对上传做一些设置,然后了解预定义变量$_FILES, 通过$_FILES的值对上传文件做一些限制和判断,最后使用move_uploaded_file()函数实现上传!

在前面的文章中我们介绍了文件操作,读写以及目录的处理和文件处理的高级应用,相关文章:

PHP文件处理-写入文件及操作文件

PHP目录处理-打开/关闭目录

PHP目录处理-浏览目录以及操作目录

PHP文件处理的高级应用-远程文件访问及锁定文件

PHP文件处理的高级应用-文件指针

PHP文件处理-如何读取文件(一行,整个文件)

PHP文件处理-读取文件(一个字符,字串)

PHP文件处理-打开/关闭文件

小伙伴们可以去看看,今天我们介绍PHP文件上传,预定义变量以及配置php.ini!

一:配置 php.ini 文件

想要顺利的实现上传功能,首要做的就是在 php.ini 中开启文件上传,并对其中的一些参数作出合理的设置。找到 File Upioads 项,可以看到下面有 3 属性,表示含义如下:

  • file_uploads:如果值为 on,说明服务器支持上传文件;如果为 off,则表示不支持。

  • upload_tem_dir:上传文件临时目录。在文件被成功上传之前,文件首先存放到服务器端的临时目录,如果想要指定位置,可在这里设置,否则使用系统默认目录就可以了。

  • upload_max_filesize: 服务器允许上传的文件的最大值,以MB为单位。系统默认是 2MB,用户可以自行设置。

除了File Upolads项,还有几个属性也会影响到上传文件的功能。

  • max_execution_time:PHP 中一个指令所能执行的最长时间,单位是秒;

  • memory_limit : PHP 中一个指令所分配的没存空间,单位是MB;

说明:

1.如果使用集成的安装包来配置PHP 的开发环境,上述介绍的这些配置信息按默认已经配置好了!

2.如果要上传超大的文件,需要对 php.ini 的一些参数进行修改,其中包括 upload_max_filesize服务器允许上传的文件的最大值,max_execution_time 一个指令所能执行的最长时间和memory_limit一个指令所分配的内存空间!

二:预定义变量$_FLIES

$_FLIES 变量储存的事是上传文件的相关信息,这些信息对于上传功能有很大的作用。该变量是一个二维数组。预定义变量$_FILES 元素说明如下表:

元素名 说明
$_FILE[filename][name] 储存了上传文件的文件名。如:exam.txt,myDream.jpg等
$_FILE[filename][size] 储存了文件大小,单位为字节。
$_FILE[filename][tmp_name] 文件上传时, 首先在临时目录中被保存成一个临时文件。该变量为临时文件名
$_FILE[filename][type] 上传文件的类型。
$_FILE[filename][error] 储存了上传文件的结果。如果值为 0 ,说明文件上传成功

下面实例创建一个上传文件域,通过$_FILES变量输出上传的文件资料。具体示例代码如下;

<html>
<body>
<table width="500" border="1" cellpadding="0" cellspacing="0">
    <!--上传文件的 form表单,必须有 enctype 属性-->
    <form method="post" about="" enctype="multipart/form-data">
    <tr>
        <td width="150" height="30" align="right" valign="middle">请选择上传文件:</td>
        <!--上传文件域,type类型为file-->
        <td width="250"><input type="file" name="upfile"></td>
        <!-- 提交按钮-->
        <td width="100"><input type="submit" name="submit" value="上传"></td>
</tr>
</form>
</table>
</body>
</html>
<?php
header("Content-Type:text/html; charset=utf-8");
if(!empty($_FILES)){                                //判断变量$_FILES是否为空
    foreach ($_FILES[&#39;upfile&#39;] as $name => $value){ //使用 foreach 循环输出上传文件信息的名称和值
        echo $name,"=".$value."<br>";
    }
}
?>

输出结果为:

28.png

下一篇文章我们将介绍文件上传函数和多文件上传,具体内容请阅读《PHP文件上传-move_uploaded_file()函数的使用详解

以上是php文件上传-配置php.ini文件以及预定义变量$_FILES的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn