1. 前提条件

在开始之前,请确保你的服务器已经安装了PHP和MySQL,并且已经开启了文件上传的权限。

2. 准备工作

2.1 创建HTML表单

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

2.2 创建PHP脚本

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // 检查是否有文件被上传
    if (isset($_FILES['image'])) {
        $file = $_FILES['image'];

        // 获取文件信息
        $filename = $file['name'];
        $filetype = $file['type'];
        $filesize = $file['size'];
        $tmp_name = $file['tmp_name'];
        $error = $file['error'];

        // 定义允许的图片类型
        $allowed_types = array('image/jpeg', 'image/png', 'image/gif');

        // 检查文件类型是否允许
        if (in_array($filetype, $allowed_types)) {
            // 检查文件大小(例如:不超过2MB)
            if ($filesize <= 2000000) {
                // 移动文件到指定目录
                $new_filename = uniqid() . '.' . pathinfo($filename, PATHINFO_EXTENSION);
                move_uploaded_file($tmp_name, 'uploads/' . $new_filename);

                // 图片预览
                echo "<img src='uploads/" . $new_filename . "' alt='上传的图片'/>";
            } else {
                echo "文件大小不能超过2MB。";
            }
        } else {
            echo "不支持的文件类型。";
        }
    } else {
        echo "没有文件被上传。";
    }
}
?>

3. 图片预览

4. 安全性考虑

  • 验证文件类型:确保上传的是图片文件,避免恶意文件上传。
  • 检查文件大小:上传文件的大小,避免服务器资源被滥用。
  • 上传路径:避免上传的文件被放置到网站的非预期目录。
  • 使用GD库:使用PHP的GD库对上传的图片进行验证,确保其确实为图片格式。

5. 总结