1. 准备工作

在开始编写代码之前,我们需要做一些准备工作:

1.1 环境搭建

确保您的服务器上已安装PHP和MySQL,并配置好相应的环境。

1.2 准备上传目录

2. 创建图片上传接口

2.1 表单设计

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

2.2 PHP后端处理

<?php
// 检查是否有文件被上传
if (isset($_FILES['image'])) {
    // 获取上传文件的信息
    $file = $_FILES['image'];
    $file_name = $file['name'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];

    // 设置允许上传的图片类型
    $allowed_types = array('jpg', 'jpeg', 'png', 'gif');
    $file_ext = strtolower(end(explode('.', $file_name)));

    // 检查文件类型是否合法
    if (in_array($file_ext, $allowed_types)) {
        // 检查是否有错误发生
        if ($file_error === 0) {
            // 检查文件大小是否超过(例如:2MB)
            if ($file_size <= 2097152) {
                // 重命名上传的文件
                $new_file_name = uniqid('', true) . '.' . $file_ext;

                // 移动上传的文件到指定目录
                $destination = 'uploads/' . $new_file_name;
                move_uploaded_file($file_tmp, $destination);

                // 返回成功信息
                echo "文件上传成功!";
            } else {
                echo "文件大小超过。";
            }
        } else {
            echo "文件上传出错。";
        }
    } else {
        echo "不支持的文件类型。";
    }
}
?>

3. 图片上传示例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>图片上传示例</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="image">选择图片:</label>
        <input type="file" name="image" id="image" required>
        <input type="submit" value="上传">
    </form>

    <?php
    if (isset($_FILES['image'])) {
        $file = $_FILES['image'];
        $file_name = $file['name'];
        $file_tmp = $file['tmp_name'];
        $file_size = $file['size'];
        $file_error = $file['error'];

        // 设置允许上传的图片类型
        $allowed_types = array('jpg', 'jpeg', 'png', 'gif');
        $file_ext = strtolower(end(explode('.', $file_name)));

        // 检查文件类型是否合法
        if (in_array($file_ext, $allowed_types)) {
            // 检查是否有错误发生
            if ($file_error === 0) {
                // 检查文件大小是否超过(例如:2MB)
                if ($file_size <= 2097152) {
                    // 重命名上传的文件
                    $new_file_name = uniqid('', true) . '.' . $file_ext;

                    // 移动上传的文件到指定目录
                    $destination = 'uploads/' . $new_file_name;
                    move_uploaded_file($file_tmp, $destination);

                    // 显示上传的图片
                    echo "<img src='" . $destination . "' alt='上传的图片'/>";
                } else {
                    echo "文件大小超过。";
                }
            } else {
                echo "文件上传出错。";
            }
        } else {
            echo "不支持的文件类型。";
        }
    }
    ?>
</body>
</html>