php $_files能完成什么任務(wù)

PHP
小樊
81
2024-11-20 18:27:00

$_FILES 是 PHP 中的一個(gè)預(yù)定義全局?jǐn)?shù)組,用于處理 HTTP 文件上傳。它可以完成以下任務(wù):

  1. 上傳文件:通過(guò) HTML 表單中的 <input type="file"> 元素,用戶可以選擇一個(gè)或多個(gè)文件進(jìn)行上傳。當(dāng)表單提交時(shí),這些文件信息會(huì)被存儲(chǔ)在 $_FILES 數(shù)組中。

  2. 檢查文件信息:$_FILES 數(shù)組包含了上傳文件的詳細(xì)信息,如文件名、文件類型、文件大小、錯(cuò)誤信息等。你可以使用這些信息來(lái)驗(yàn)證文件是否符合你的需求。

  3. 處理上傳文件:根據(jù)你的需求,你可以使用 PHP 的內(nèi)置函數(shù)(如 move_uploaded_file())將上傳的文件移動(dòng)到服務(wù)器上的指定目錄。

  4. 文件重命名:在將上傳的文件保存到服務(wù)器之前,你可以使用 PHP 的內(nèi)置函數(shù)(如 rename())對(duì)文件進(jìn)行重命名,以避免文件名沖突。

  5. 文件讀取:上傳的文件可以被讀取并處理,例如使用 file_get_contents() 函數(shù)讀取文件內(nèi)容,或者使用 fopen()、fread()fclose() 函數(shù)逐行讀取文件內(nèi)容。

  6. 文件刪除:你可以使用 PHP 的內(nèi)置函數(shù)(如 unlink())刪除服務(wù)器上的文件。

示例:

<!-- HTML 表單 -->
<form action="upload.php" method="post" enctype="multipart/form-data">
  選擇一個(gè)文件:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="上傳文件" name="submit">
</form>
// 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"])) . " 已經(jīng)被上傳。";
        } else {
            echo "抱歉,上傳文件時(shí)出現(xiàn)錯(cuò)誤。";
        }
    } else {
        echo "文件未上傳。";
    }
}

0