图片上传基本原理

  1. 创建HTML表单:使用<form>标签创建一个表单,并指定enctypemultipart/form-data,以便能够上传文件。
  2. 客户端选择文件:用户通过表单中的<input type="file">元素选择要上传的图片。
  3. 提交表单:用户点击提交按钮后,表单数据被发送到服务器。
  4. 服务器端处理:PHP脚本接收文件,并进行检查、保存等操作。

PHP图片上传步骤详解

1. 创建HTML表单

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

2. PHP脚本处理上传

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['image'])) {
    $image = $_FILES['image'];
    $uploadDir = 'uploads/';
    $uploadFile = $uploadDir . basename($image['name']);

    // 检查文件是否通过HTTP POST上传
    if ($image['error'] == 0) {
        // 检查文件类型
        $imageType = strtolower(pathinfo($image['name'], PATHINFO_EXTENSION));
        if ($imageType == 'jpg' || $imageType == 'jpeg' || $imageType == 'png') {
            // 移动上传的文件
            if (move_uploaded_file($image['tmp_name'], $uploadFile)) {
                echo "文件已成功上传到: " . $uploadFile;
            } else {
                echo "文件上传失败。";
            }
        } else {
            echo "不支持的文件类型。";
        }
    } else {
        echo "文件上传错误。错误代码:" . $image['error'];
    }
}
?>

3. 保存上传的图片

if (!file_exists($uploadDir)) {
    mkdir($uploadDir, 0755, true);
}

常见问题解答

Q:上传的图片大小有吗?

if ($image['size'] > 2097152) {
    echo "文件大小超过。";
}

Q:如何防止上传恶意文件?

A:除了文件类型和大小,您还可以对上传的文件进行病毒扫描,并检查文件名是否包含非法字符。

Q:如何显示上传的图片?

echo '<img src="' . $uploadFile . '" alt="上传的图片">';