📜  PHP | $_FILES 数组(HTTP 文件上传变量)(1)

📅  最后修改于: 2023-12-03 15:03:36.043000             🧑  作者: Mango

PHP | $_FILES 数组(HTTP 文件上传变量)

在 PHP 中,$_FILES 是超级全局数组,用于在 HTTP 文件上传时访问上传的文件。它包含了文件在服务器上的临时位置以及文件的名称、类型、大小等信息。

必备条件

在使用 $_FILES 数组之前,要确保以下条件已经满足:

  • HTML <form> 标签中设置了 enctype="multipart/form-data" 属性。
  • PHP.ini 文件中,file_uploads 选项必须启用。
  • PHP.ini 文件中,upload_tmp_dir 选项必须指定一个临时目录用于保存上传的文件。
  • PHP.ini 文件中,post_max_sizeupload_max_filesize 选项必须设置为可以上传的最大文件大小。
语法

使用 $_FILES 数组的语法如下所示:

$_FILES['name']['attribute'];

其中:

  • name 是文件在 HTML <form> 中的 name 属性值。
  • attribute 是获取的具体信息,如 nametypesize 等。
示例

以下是使用 $_FILES 数组的示例代码:

<!DOCTYPE html>
<html>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <input type="file" name="file">
        <input type="submit" value="Upload">
    </form>
</body>
</html>
<?php
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"];
}
?>

以上代码中,$_FILES["file"]["error"] 表示上传文件的错误码,如果为 0 则表示上传成功。$_FILES["file"]["name"] 表示上传文件的名称,$_FILES["file"]["type"] 表示上传文件的类型,$_FILES["file"]["size"] 表示上传文件的大小,$_FILES["file"]["tmp_name"] 表示上传文件在服务器上的临时位置。

结论

使用 $_FILES 数组可以轻松地在 PHP 中上传文件,并访问上传文件的各种信息。同时,要注意文件上传的限制和错误处理。