PHP 接收上传文件信息的系统数组是 $_FILES。
在 PHP 中,我们经常需要处理文件上传,例如上传图片、视频等文件。为了处理上传过程中的相关信息和数据,PHP 提供了一个特殊的系统数组 $_FILES,用来存储上传的文件信息。
$_FILES 变量是一个二维关联数组,其结构如下:
$_FILES = array( 'file' => array( 'name' => 'filename.txt', //文件名 'type' => 'text/plain', //文件MIME类型 'tmp_name' => '/tmp/php/php1h4jCk', //上传的临时文件名 'error' => 0, //上传的错误代码 'size' => 123 //上传文件的大小 ) );
其中,数组中的 "file" 是表单元素的名称,例如下面的HTML代码:
<form enctype="multipart/form-data" method="POST"> <input type="file" name="file"/> </form>
在这个表单中,"file" 就是表单元素的名称。
在 $_FILES 中,具体存储的信息包括:
下面是 $_FILES 中各个字段的含义:
上传文件的原始文件名,不包括文件路径。如果一个文件上传时,文件名被修改了,则这个变量存储的是新的文件名。
上传文件的 MIME 类型,即文件的内容类型,例如 text/plain、application/octet-stream 等。
上传文件的临时文件名,以及存放这个临时文件的路径。这个路径是服务器端的临时目录。
上传文件的错误代码。如果上传成功,这个值为 0。其他可能的值包括:
- UPLOAD_ERR_OK:文件上传成功。 - UPLOAD_ERR_INI_SIZE:上传的文件超过了php.ini 中 upload_max_filesize 选项限制的值。 - UPLOAD_ERR_FORM_SIZE:上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 - UPLOAD_ERR_PARTIAL:文件只有部分被上传。 - UPLOAD_ERR_NO_FILE:没有文件被上传。 - UPLOAD_ERR_CANT_WRITE:写入磁盘失败。 - UPLOAD_ERR_EXTENSION:PHP扩展停止文件上传。
上传文件的大小,以字节为单位。
使用 $_FILES 变量的示例:
如果我们要一个表单中上传一个图片,我们可以使用以下 HTML 代码:
<form enctype="multipart/form-data" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> <input type="file" name="image" /> <input type="submit" name="submit" value="Upload Image" /> </form>
在服务器端,我们可以使用以下 PHP 代码来处理上传文件:
<?php if(isset($_POST['submit'])) { $file = $_FILES['image']; $filename = $file['name']; $filetmp = $file['tmp_name']; $filesize = $file['size']; $filetype = $file['type']; // TODO: 处理上传文件 move_uploaded_file($filetmp, "uploads/" . $filename); } ?>
在处理上传文件时,我们首先检查提交的表单是否包含了 "submit" 字段,这是为了避免在没有提交表单的情况下处理上传文件的错误。
我们首先从 $_FILES 变量中获取文件信息,并定义变量 $filename、$filetmp、$filesize、$filetype,分别存储文件名、上传文件的临时文件名、文件大小和MIME类型。
接下来,我们可以使用 PHP 函数 move_uploaded_file() 函数,把上传的文件从临时目录移动到我们存储文件的指定目录中,例如上面例子中的 "uploads/" 目录。
总结:
$_FILES 是 PHP 中处理文件上传的关键变量,它包含了上传文件的各种信息,包括文件名、MIME类型、上传临时文件名、大小等等。在使用 $_FILES 时,我们需要注意表单提交的时机、处理上传文件的逻辑,以及上传文件的存储方式等。
以上是php接收上传文件信息的系统数组是哪个的详细内容。更多信息请关注PHP中文网其他相关文章!