PHP

php $_files能实现什么

小樊
81
2024-11-20 18:23:01
栏目: 编程语言

$_FILES 是 PHP 中的一个预定义全局数组,用于处理 HTTP 文件上传。当用户通过表单提交一个文件时,$_FILES 数组会自动收集有关该文件的信息。这些信息包括文件的原始文件名、文件类型、文件大小以及临时文件路径等。使用 $_FILES,您可以处理用户上传的文件,例如将其保存到服务器上的某个位置或将它们移动到其他目录。

以下是 $_FILES 数组的一些常见元素:

以下是一个简单的示例,展示了如何使用 $_FILES 数组处理文件上传:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  选择要上传的文件:
  <input type="file" name="filename">
  <input type="submit" value="上传">
</form>

</body>
</html>

接下来,创建一个名为 upload.php 的 PHP 文件来处理文件上传:

<?php
if ($_FILES["filename"]["error"] > 0) {
  echo "错误:" . $_FILES["filename"]["error"] . "<br>";
} 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” 文件夹中。如果上传成功,我们会显示一条消息,否则会显示一条错误消息。

0
看了该问题的人还看了