PHP图片上传代码

yizhihongxing

当网站需要支持用户上传图片时,使用 PHP 代码实现图片上传功能是比较常见的做法之一。下面是实现 PHP 图片上传的完整攻略。

第一步:准备 HTML 代码

在 HTML 中,使用 <input> 标签并指定 type=file 属性,创建一个文件选择框。用户点击此框选择图片后,浏览器会为你提供一个图片文件对象。

实现 HTML 代码示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <form action="upload.php" enctype="multipart/form-data" method="post">
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload" name="submit">
    </form>
</body>
</html>

第二步:编写 PHP 代码

在 PHP 中,我们首先要获取刚才 HTML 中的文件对象,并保存在本地服务器上。这个过程可以通过 PHP 中的 $_FILES 数组和 move_uploaded_file 函数实现。其中 $_FILES 数组保存了上传的文件信息,move_uploaded_file 函数则是将文件移动至指定的文件夹中。

实现 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) {
        $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.";
} 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.";
    }
}
?>

实现 PHP 代码示例二:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 允许上传的文件类型
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.";
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";

        // 创建缩略图
        $image = null;
        if($imageFileType == "jpg" || $imageFileType == "jpeg") {
            $image = imagecreatefromjpeg($target_file);
        } else if($imageFileType == "png") {
            $image = imagecreatefrompng($target_file);
        }

        if($image != null) {
            $thumbWidth = 300;
            $thumbHeight = 300;
            $width = imagesx($image);
            $height = imagesy($image);
            $newImage = imagecreatetruecolor($thumbWidth, $thumbHeight);
            imagecopyresampled($newImage, $image, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $width, $height);
            $thumbPath = "uploads/thumbs/" . basename($_FILES["fileToUpload"]["name"]);
            imagejpeg($newImage, $thumbPath, 90);
            imagedestroy($image);
            imagedestroy($newImage);
            echo "Thumbnail created at $thumbPath.";
        }
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

以上是 PHP 实现图片上传的完整攻略,第一个示例展示了基础的 PHP 图片上传代码实现,第二个示例加入了一个功能:在图片上传成功后,自动为图片创建一个 300 * 300 的缩略图,方便展示。当然,上述示例代码应该根据自己的需求进行优化和修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP图片上传代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 8个PHP程序员常用的功能汇总

    8个PHP程序员常用的功能汇总 本篇文章将介绍8个PHP程序员常用的功能,包括字符串处理、数组操作、文件操作等常见操作,以及相应的示例说明。 1. 字符串替换 字符串替换是PHP中常用的功能之一,使用str_replace函数可以实现指定字符串在目标字符串中的替换。 示例: $str = "PHP is a popular programming …

    PHP 2023年5月30日
    00
  • 小程序实现抽奖动画

    实现小程序抽奖动画,需要以下步骤: 步骤一:制作转盘样式 在 WXML 文件中,使用 canvas 标签绘制一个圆形,作为抽奖转盘的样式: <canvas canvas-id="canvas-turntable" style="width: 100%;height: 100%;"></canvas&g…

    PHP 2023年5月23日
    00
  • qq群作业一键提醒功能怎么使用?

    使用Markdown格式编写“qq群作业一键提醒功能”的完整攻略如下: 介绍 “qq群作业一键提醒功能”的实现需要使用到QQ机器人,依靠机器人发送消息的方式实现提醒的功能。其中,需要借助一些第三方库来实现机器人的逻辑。本攻略将详细介绍以和风机器人为例的实现过程。 步骤 首先,需要申请一份和风机器人的API密钥,获取方法可以参考和风天气官网API文档。 在群内…

    PHP 2023年5月26日
    00
  • PHP实现的自定义数组排序函数与排序类示例

    好的。首先,我们需要了解一下PHP中排序的机制。 在PHP中,排序是通过调用内置的sort()函数实现的。该函数使用快速排序算法,可以轻松地对数组进行排序。但是,当需要按照自定义规则对数组进行排序时,我们需要创建一个自定义排序函数或类。 下面,我将介绍如何实现一个自定义排序函数和一个自定义排序类。 自定义排序函数示例 以下是一个示例数组: $my_array…

    PHP 2023年5月26日
    00
  • PHP递归调用数组值并用其执行指定函数的方法

    下面是详细的讲解: PHP递归调用数组值并用其执行指定函数的方法 什么是递归调用? 递归(Recursion)是指在程序执行中调用自身的编程技巧。递归函数是在一个函数内部调用自身的函数,可以用于解决许多复杂的问题,例如二叉树的遍历、快速排序、阶乘计算等。 如何递归调用数组值并用其执行指定函数? 在PHP中,我们可以通过递归函数来遍历数组的所有元素并执行指定的…

    PHP 2023年5月26日
    00
  • 必须收藏的23个php实用代码片段

    下面是“必须收藏的23个php实用代码片段”的完整攻略: 1. 概述 在本文中,你将了解到23个PHP代码片段,这些代码片段可用于构建更好的Web应用程序。这些代码片段中的许多技术和技巧都是PHP应用程序开发中的常见问题的解决方案,通过将它们应用于您的项目中,您可以极大地提高项目的效率和质量。接下来,我们将一步步的介绍这些代码片段并给出详细的示例。 2. 代…

    PHP 2023年5月23日
    00
  • PHP编程中的常见漏洞和代码实例

    那我来详细讲解一下“PHP编程中的常见漏洞和代码实例”的完整攻略。 什么是常见漏洞 在 PHP 编程中常见的漏洞有很多种,这里将介绍其中比较常见的几种: SQL 注入 在 PHP 开发中,如用户登陆、搜索功能等,都需要通过 SQL 语句从数据库中查询数据。而 SQL 注入漏洞就是攻击者将恶意代码注入到 SQL 语句中,从而突破程序的安全防护措施,访问、篡改、…

    PHP 2023年5月23日
    00
  • 浅谈php命令行用法

    浅谈PHP命令行用法攻略 PHP一般被认为是一种用于构建Web应用程序的语言,但是它还有很多其他方面的用处。其命令行工具是一个非常强大的工具,可以用于许多不同的任务,例如脚本执行、测试、优化代码等。本攻略将会详细介绍PHP命令行用法。 PHP CLI 环境配置 在开始之前,需要确保你已经正确地配置了PHP CLI环境。你可以使用以下命令检查: php -v …

    PHP 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部