简介

PHP图片上传基础

1. 图片上传原理

  • 前端HTML表单:用于让用户选择和上传图片。
  • 后端PHP脚本:处理上传的图片,包括验证、存储等。
  • 服务器配置:确保服务器支持PHP和文件上传。

2. PHP文件上传函数

PHP提供了move_uploaded_file()函数用于处理文件上传。该函数将上传的文件从临时目录移动到指定的目录。

move_uploaded_file($tmp_name, $upload_dir);

其中,$tmp_name是上传文件的临时文件名,$upload_dir是上传后文件要保存的目录。

图片上传实践

1. 创建HTML表单

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

2. PHP脚本处理上传

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // 确保文件已上传
    if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
        // 获取上传文件信息
        $tmp_name = $_FILES['image']['tmp_name'];
        $name = $_FILES['image']['name'];
        $size = $_FILES['image']['size'];
        $type = $_FILES['image']['type'];

        // 验证图片类型
        if (strpos($type, 'image/') !== 0) {
            die('无效的图片类型');
        }

        // 设置上传目录
        $upload_dir = 'uploads/';
        if (!is_dir($upload_dir)) {
            mkdir($upload_dir, 0777, true);
        }

        // 重命名上传文件
        $new_name = uniqid() . '.' . pathinfo($name, PATHINFO_EXTENSION);

        // 移动上传文件
        if (move_uploaded_file($tmp_name, $upload_dir . $new_name)) {
            echo '图片上传成功!';
        } else {
            echo '图片上传失败!';
        }
    }
}
?>

3. 服务器配置

确保服务器已安装PHP,并配置了文件上传的参数。在PHP配置文件php.ini中,设置以下参数:

  • upload_max_filesize: 上传文件的最大大小。
  • post_max_size: 通过POST方法发送数据的最大大小。
  • file_uploads: 允许文件上传。

总结