PHP图片上传代码

当网站需要支持用户上传图片时,使用 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日

相关文章

  • PHP 用数组降低程序的时间复杂度

    下面是PHP用数组降低程序时间复杂度的完整攻略: 1. 什么是时间复杂度? 时间复杂度是算法执行所需的时间,通常用 “O(n)” 表示,其中 n 是程序输入的规模或者说大小。时间复杂度可以用来衡量算法的效率,通常我们会尽可能降低时间复杂度。 2. 数组降低时间复杂度的原理 数组是一种数据结构,用于存储固定大小的元素序列。在编程过程中,使用数组可以降低时间复杂…

    PHP 2023年5月26日
    00
  • php 购物车完整实现代码

    以下是详细讲解“php 购物车完整实现代码”的完整攻略。 确定功能需求 首先需要明确购物车的功能需求,如以下几点: 加入商品到购物车 修改购物车中商品数量 删除购物车中商品 显示购物车中商品信息及商品小计 计算购物车总价 数据库设计 为了对购物车中商品进行操作,需要对商品数据进行存储,因此需要设计购物车表和商品表。设计表时,需要考虑表之间的关系,如以下表结构…

    PHP 2023年5月24日
    00
  • PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)

    以下是关于PHP在Windows平台中启动应用程序、执行批处理以及CMD命令的方法: 方法一:使用exec函数 启动应用程序 可以使用exec()函数启动一个Windows应用程序。这里的应用程序可以是可执行文件,也可以是脚本文件(例如:.bat、.cmd等)。下面是示例代码: <?php // 程序:启动Windows计算器 // 可执行文件路径:C…

    PHP 2023年5月23日
    00
  • 三个骰子出点规律|玩3个骰子猜大小必赢技巧

    “三个骰子出点规律|玩3个骰子猜大小必赢技巧”攻略 背景介绍 “三个骰子出点规律|玩3个骰子猜大小必赢技巧”是一种赌博游戏玩法,常见于娱乐场所。该游戏基于骰子点数大小的猜测盈亏,虽然看似只是纯粹的随机事件,但是在实际操作中有很多技巧和规律,可以帮助玩家提高胜率。 游戏规则 游戏中有3个骰子,子骰的点数分别为1到6,玩家需要猜测三个骰子点数的总和大小。 当三个…

    PHP 2023年5月27日
    00
  • PHP中的array数组类型分析说明

    下面是针对“PHP中的array数组类型分析说明”的完整攻略: PHP中的array数组类型分析说明 什么是PHP中的array数组 数组是一种数据类型,用于存储多个值。在PHP中,数组也是一种数据类型,用于存储多个值的容器。 PHP中的数组有两种类型,分别是: 索引数组 关联数组 索引数组 索引数组(也称数字数组)是指用整数作为索引的数组。PHP默认的数组…

    PHP 2023年5月26日
    00
  • php面向对象全攻略 (九)访问类型

    下面是关于“php面向对象全攻略(九)访问类型”的完整攻略: 一、什么是访问类型? 在 PHP 面向对象编程中,访问类型(Access Modifiers)是用来控制类成员(属性和方法)被访问的级别。PHP 支持 3 种不同的访问类型: public(公共的):公共成员可以在类的内部和外部进行访问。 protected(受保护的):受保护成员只能在该类和其子…

    PHP 2023年5月23日
    00
  • phpstudy后门rce批量利用脚本的实现

    首先,需要说明一下,本文严禁用于非法操作,仅用于安全研究和提高意识。对于任何因为使用本文所述方法而带来的后果,本文作者不承担任何法律责任。 确定漏洞版本 在使用脚本前,需要先扫描网站是否存在phpstudy后门漏洞,并确定漏洞版本,常见的版本有: phpstudy 2016版 v8.0 phpstudy 2018版 v8.0 phpstudy 2018版 v…

    PHP 2023年5月27日
    00
  • 简单的php+mysql聊天室实现方法(附源码)

    下面详细讲解“简单的php+mysql聊天室实现方法(附源码)”的完整攻略。 简述 本文所介绍的方法是一种使用php和mysql实现聊天室功能的方法。实现的核心是通过Ajax技术实现实时聊天。 环境要求 服务器需支持php和mysql; 推荐使用XAMPP或WAMP等本地服务器环境; 推荐使用最新版本的Chrome浏览器。 实现步骤 1. 创建数据库和表 首…

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