$_FILES
是 PHP 中的一个预定义全局数组,用于处理 HTTP 文件上传。它可以完成以下任务:
-
上传文件:通过 HTML 表单中的
元素,用户可以选择一个或多个文件进行上传。当表单提交时,这些文件信息会被存储在
$_FILES
数组中。 -
检查文件信息:
$_FILES
数组包含了上传文件的详细信息,如文件名、文件类型、文件大小、错误信息等。你可以使用这些信息来验证文件是否符合你的需求。 -
处理上传文件:根据你的需求,你可以使用 PHP 的内置函数(如
move_uploaded_file()
)将上传的文件移动到服务器上的指定目录。 -
文件重命名:在将上传的文件保存到服务器之前,你可以使用 PHP 的内置函数(如
rename()
)对文件进行重命名,以避免文件名冲突。 -
文件读取:上传的文件可以被读取并处理,例如使用
file_get_contents()
函数读取文件内容,或者使用fopen()
、fread()
和fclose()
函数逐行读取文件内容。 -
文件删除:你可以使用 PHP 的内置函数(如
unlink()
)删除服务器上的文件。
示例:
// upload.php if (isset($_FILES['fileToUpload'])) { $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); // 检查文件是否为有效上传 if (isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["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["fileToUpload"]["tmp_name"], $target_file)) { echo "文件:" . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " 已经被上传。"; } else { echo "抱歉,上传文件时出现错误。"; } } else { echo "文件未上传。"; } }