溫馨提示×

php怎樣上傳文件

PHP
小樊
81
2024-09-24 11:26:06
欄目: 編程語言

在PHP中,要實現(xiàn)文件上傳功能,你需要使用HTML表單、PHP腳本以及一個可上傳文件的服務(wù)器目錄。以下是一個簡單的文件上傳示例:

  1. 創(chuàng)建一個HTML表單:
<!DOCTYPE html>
<html>
<head>
    <title>文件上傳</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        選擇一個要上傳的文件:
        <input type="file" name="uploaded_file">
        <br><br>
        <input type="submit" value="上傳文件" name="submit">
    </form>
</body>
</html>

注意enctype="multipart/form-data"屬性,這是必須的,因為它允許表單提交二進(jìn)制數(shù)據(jù)。

  1. 創(chuàng)建一個名為upload.php的PHP腳本,以處理表單提交的文件:
<?php
$target_dir = "uploads/"; // 上傳目錄
$target_file = $target_dir . basename($_FILES["uploaded_file"]["name"]); // 目標(biāo)文件名
$uploadOk = 1; // 設(shè)置上傳狀態(tài)
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); // 檢查文件類型

// 檢查文件是否為實際文件
if (isset($_POST["submit"])) {
    $check = getimagesize($_FILES["uploaded_file"]["tmp_name"]);
    if ($check !== false) {
        echo "文件是一張圖片 - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "文件不是一張圖片。";
        $uploadOk = 0;
    }
}

// 檢查文件大小
if ($_FILES["uploaded_file"]["size"] > 500000) {
    echo "抱歉,你的文件太大了。請上傳小于500KB的文件。";
    $uploadOk = 0;
}

// 允許特定文件格式
if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
    echo "抱歉,只允許 JPG、JPEG、PNG 和 GIF 格式的文件。";
    $uploadOk = 0;
}

// 檢查上傳目錄; 如果不存在,則嘗試創(chuàng)建一個
if (!file_exists($target_dir)) {
    mkdir($target_dir, 0777, true);
}

// 嘗試上傳文件
if ($uploadOk == 1) {
    if (move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], $target_file)) {
        echo "文件 " . htmlspecialchars(basename($_FILES["uploaded_file"]["name"])) . " 上傳成功。";
    } else {
        echo "抱歉,文件上傳出現(xiàn)問題。";
    }
}
?>

這個簡單的示例將允許用戶從本地計算機(jī)選擇一個文件并上傳到服務(wù)器上的"uploads"目錄。請注意,在生產(chǎn)環(huán)境中使用文件上傳功能時,請務(wù)必對用戶上傳的文件進(jìn)行充分驗證,以防止?jié)撛诘陌踩L(fēng)險。

0