$_FILES
是 PHP 中的一个预定义全局数组,用于处理 HTTP 文件上传。当用户通过表单提交一个文件时,$_FILES
数组会自动收集有关该文件的信息。这些信息包括文件的原始文件名、文件类型、文件大小以及临时文件路径等。使用 $_FILES
,您可以处理用户上传的文件,例如将其保存到服务器上的某个位置或将它们移动到其他目录。
以下是 $_FILES
数组的一些常见元素:
$_FILES['filename']['name']
:上传文件的原始文件名。$_FILES['filename']['type']
:上传文件的 MIME 类型。$_FILES['filename']['size']
:上传文件的大小(以字节为单位)。$_FILES['filename']['error']
:文件上传过程中的错误代码。通常,0 表示没有错误,1 表示上传文件太大,2 表示文件上传被中断,4 表示没有找到上传文件。$_FILES['filename']['tmp_name']
:上传文件在服务器上的临时存储路径。
以下是一个简单的示例,展示了如何使用 $_FILES
数组处理文件上传:
接下来,创建一个名为 upload.php
的 PHP 文件来处理文件上传:
0) { echo "错误:" . $_FILES["filename"]["error"] . "
"; } else { $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["filename"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); // 检查文件是否为有效上传 if (isset($_POST["submit"])) { $check = getimagesize($_FILES["filename"]["tmp_name"]); if ($check !== false) { echo "文件是一张图片 - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "文件不是一张图片。"; $uploadOk = 0; } } // 检查上传文件夹是否存在 if (!file_exists($target_dir)) { mkdir($target_dir, 0777, true); } // 尝试上传文件 if ($uploadOk == 1) { if (move_uploaded_file($_FILES["filename"]["tmp_name"], $target_file)) { echo "文件:" . htmlspecialchars(basename($_FILES["filename"]["name"])) . " 已经上传成功。"; } else { echo "抱歉,文件上传失败。"; } } } ?>
在这个示例中,我们首先检查上传过程中是否有错误。如果没有错误,我们将检查上传的文件是否为图片,然后将其移动到服务器上的 “uploads” 文件夹中。如果上传成功,我们会显示一条消息,否则会显示一条错误消息。