前端准备

<form action="upload.php" method="post" enctype="multipart/form-data">
    选择图片:<input type="file" name="image" />
    <input type="submit" value="上传图片" />
</form>

后端处理

1. 图片上传

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["image"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

    // 检查文件是否已存在
    if (file_exists($target_file)) {
        echo "抱歉,文件已存在。";
        $uploadOk = 0;
    }

    // 检查文件大小
    if ($_FILES["image"]["size"] > 500000) {
        echo "抱歉,文件太大。";
        $uploadOk = 0;
    }

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

    // 检查是否没有错误,并且 $uploadOk 设置为 0
    if ($uploadOk == 0) {
        echo "抱歉,您的文件未能上传。";
    } else {
        // 如果一切顺利,尝试上传文件
        if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
            echo "文件已成功上传: " . basename( $_FILES["image"]["name"]). "";
        } else {
            echo "抱歉,文件上传时出错。";
        }
    }
}
?>

在这个示例中,我们首先检查请求的方法是否为POST,然后设置目标目录和文件名。我们检查文件是否已存在、文件大小以及文件类型。如果一切检查都通过,我们尝试将文件从临时文件夹移动到目标目录。

2. 图片替换

<?php
// 删除旧图片
unlink("uploads/old_image.jpg");

// 上传新图片(参考上面的上传代码)
?>

总结