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中3种方法统计字符串中每种字符的个数并排序

    以下是PHP中三种方法统计字符串中每种字符的个数并排序的攻略: 方法一:使用for循环逐一判断并统计字符个数 <?php $str = "hello world"; $result = array(); for ($i = 0; $i < strlen($str); $i++) { $char = $str[$i]; if (…

    PHP 2023年5月26日
    00
  • PHP Parser 扫描应用打印输出结构语句实例

    非常感谢您关注本网站的内容。下面是关于“PHP Parser 扫描应用打印输出结构语句实例”的完整攻略: 什么是PHP Parser? PHP Parser是一款用于语法解析和分析PHP代码的工具,它可以通过遍历代码的语法树来分析代码结构,从而达到一定的代码改写和分析的效果。在PHP开发中,我们可以使用PHP Parser来进行许多有用的编译分析,例如自动化…

    PHP 2023年5月26日
    00
  • 百度网盘被和谐的怎么下载?百度网盘被禁封怎么办

    百度网盘是用户分享文件的一个平台,但是由于版权问题,部分文件会被和谐或者禁封。对于这种情况,用户可以采取以下措施进行下载。 百度网盘被和谐的怎么下载? 方法一:修改链接 百度网盘文件被和谐后,下载链接会变成不能访问的状态。但是,只要知道文件的提取码,就可以将链接中的网盘地址修改成提取码链接,让链接重新可访问。具体步骤如下: 打开被和谐的百度网盘链接 复制提取…

    PHP 2023年5月27日
    00
  • php 代码优化之经典示例

    下面是我对于“PHP代码优化之经典示例”的完整攻略。 流程分析 要进行代码优化,首先需要分析代码的执行流程,找出程序的瓶颈所在,进而优化代码。 首先,运行一个程序,记录下程序的总耗时。例如: php $start = microtime(true); // 运行程序 $end = microtime(true); $cost_time = $end-$sta…

    PHP 2023年5月23日
    00
  • PHP的运行机制与原理(底层)

    PHP是一种流行的服务器端脚本语言,基于C语言、Perl以及Java,可以在Web服务器上运行而不需要编译器的支持。PHP的运行机制和原理是理解PHP的编程思路和调试技巧的关键。以下是PHP的运行机制与原理的完整攻略: 1. PHP的运行机制 1.1 PHP的编译过程 PHP源码编写; 词法分析与语法分析:将PHP源码转化成抽象语法树; 中间代码生成:将抽象…

    PHP 2023年5月23日
    00
  • 微信小程序利用云函数获取手机号码

    当小程序需要获取用户的手机号码时,可以通过微信提供的云函数来获取。以下是具体的步骤: 1. 添加云函数 首先我们需要在小程序的开发者工具中添加云函数。具体的步骤如下: 在开发者工具中,点击左侧的“云开发”选项卡。 点击“开通云开发”按钮以开启云开发功能。 点击“创建新环境”按钮以创建一个新的云开发环境。 在左侧的“云开发”选项卡下,选择“云函数”选项卡。 点…

    PHP 2023年5月30日
    00
  • PHP判断字符串长度的两种方法很实用

    当我们使用PHP编写代码时,经常需要判断字符串的长度。本文将为大家介绍两种实用的PHP判断字符串长度的方法。 方法一:strlen()函数 strlen()函数用于计算一个字符串的长度,返回的是该字符串的字符数。使用该函数,我们可以方便地判断字符串的长度。 <?php $str1 = "Hello, world!"; $str2 =…

    PHP 2023年5月26日
    00
  • php获取文件后缀的9种方法

    以下是详细讲解“php获取文件后缀的9种方法”的完整攻略: 1. 使用pathinfo函数 使用pathinfo函数可以获取到文件路径的各种信息,其中包括文件后缀名。下面是获取文件后缀的代码示例: $file_path = ‘/path/to/file.jpg’; $extension = pathinfo($file_path, PATHINFO_EXTE…

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