$_FILES
是一个预定义的全局数组,用于在 PHP 中处理 HTTP 文件上传。要正确运用 $_FILES
,您需要遵循以下步骤:
- 检查表单是否包含文件上传字段:确保您的 HTML 表单包含
enctype="multipart/form-data"
属性,这样才能上传文件。
<form action="upload.php" method="post" enctype="multipart/form-data">
选择一个文件:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="上传文件" name="submit">
</form>
-
在 PHP 脚本中处理文件上传:在处理文件上传的 PHP 脚本(例如
upload.php
)中,您可以使用$_FILES
数组来访问上传的文件信息。 -
检查文件是否已上传:使用
isset()
函数检查$_FILES
数组中的特定元素是否存在。
if (isset($_FILES["fileToUpload"])) {
// 文件已上传
} else {
// 文件未上传
}
- 获取文件信息:使用
$_FILES
数组中的键来获取文件的相关信息,如文件名、文件大小、文件类型等。
$fileName = $_FILES["fileToUpload"]["name"];
$fileSize = $_FILES["fileToUpload"]["size"];
$fileType = $_FILES["fileToUpload"]["type"];
$fileTmpName = $_FILES["fileToUpload"]["tmp_name"];
- 检查文件上传是否成功:使用
$_FILES
数组中的error
键来检查文件上传是否成功。error
键的值为0
表示上传成功。
if ($_FILES["fileToUpload"]["error"] == 0) {
// 文件上传成功
} else {
// 文件上传失败
}
- 将文件移动到新位置:如果文件上传成功,您可以使用
move_uploaded_file()
函数将文件从临时目录移动到目标目录。
$targetDirectory = "uploads/";
$targetFile = $targetDirectory . basename($fileName);
if (move_uploaded_file($fileTmpName, $targetFile)) {
echo "文件:" . $fileName . " 已经上传成功。";
} else {
echo "文件上传失败。";
}
注意:确保目标目录具有适当的权限,以便 PHP 能够将文件移动到该目录。