Code前端首页关于Code前端联系我们

PHP实现图片上传功能

terry 2年前 (2023-09-29) 阅读数 50 #PHP
文章标签 PHP

1.上传图片过程

图片上传是一个非常常见的功能。此功能需要以下步骤才能完成:

1。用户在表单中选择要上传的图像。

2。提交表单后,后端服务器会收到图片的相关信息,包括图片的名称、大小、类型和临时文件名。

3。后台服务器对图片进行验证,例如类型、尺寸是否符合要求。

4。如果验证成功,图片将被移动到服务器上的指定位置,并返回上传成功的消息。

2。上传图片的关键代码

下面是一段简单的php代码,可以实现图片上传功能。

<?php
    $target_dir = "uploads/"; //图片存储路径
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); //存储文件名
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION)); //图片类型

    // 检查是否真的是图片类型
    if(isset($_POST["submit"])) {
        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if($check !== false) {
            echo "File is an image - " . $check["mime"] . ".";
            $uploadOk = 1;
        } else {
            echo "File is not an image.";
            $uploadOk = 0;
        }
    }
    // 检查图片是否已存在
    if (file_exists($target_file)) {
        echo "Sorry, file already exists.";
        $uploadOk = 0;
    }
    //检查图片大小
    if ($_FILES["fileToUpload"]["size"] > 500000) {
        echo "Sorry, your file is too large.";
        $uploadOk = 0;
    }
    //仅允许特定类型的图片上传
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
        echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
        $uploadOk = 0;
    }
    // 检查是否有错误发生
    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    // 如果一切都Ok,则尝试将文件上传到服务器
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    }
?>

3。经验及注意事项:

为保证图片上传功能的准确性和稳定性,请注意以下几点:

1。限制上传图像的类型和大小。

2。验证上传的文件以确保它们是真实的图像文件。

3。将上传的图像移动到安全位置并为此配置适当的权限。

4。上传图片时记录上传进度和上传结果。

以上几点可以有效防止用户通过上传图片的功能对系统进行恶意攻击。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门