引言

准备工作

创建HTML表单

<!DOCTYPE html>
<html>
<head>
    <title>图片上传</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        选择图片:<input type="file" name="image" accept="image/*">
        <input type="submit" value="上传图片">
    </form>
</body>
</html>

PHP脚本处理上传

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['image'])) {
    $image = $_FILES['image'];
    $upload_dir = 'uploads/';
    $allowed_types = array('image/jpeg', 'image/png', 'image/gif');
    $max_size = 5000000; // 5MB

    // 检查文件类型
    if (in_array($image['type'], $allowed_types)) {
        // 检查文件大小
        if ($image['size'] <= $max_size) {
            // 重命名文件
            $new_filename = uniqid() . '.' . pathinfo($image['name'], PATHINFO_EXTENSION);
            // 移动文件到上传目录
            if (move_uploaded_file($image['tmp_name'], $upload_dir . $new_filename)) {
                echo "图片上传成功!";
            } else {
                echo "上传失败,请检查文件权限。";
            }
        } else {
            echo "文件大小超出。";
        }
    } else {
        echo "不支持的文件类型。";
    }
}
?>

在这个脚本中,我们首先检查了请求方法和文件上传是否存在。然后,我们定义了上传目录、允许的文件类型和最大文件大小。接下来,我们检查了文件类型和大小,并使用uniqid()函数生成一个新的文件名,以避免文件名冲突。最后,我们使用move_uploaded_file()函数将文件移动到上传目录。

总结