PHP 图片文件上传实现代码

yizhihongxing

下面我来详细讲解一下“PHP 图片文件上传实现代码”的完整攻略。

步骤一:HTML表单制作

HTML表单用于用户上传图片,代码如下:

<form action="upload.php" method="post" enctype="multipart/form-data">
  <label for="file">上传图片:</label>
  <input type="file" name="file" id="file" />
  <br />
  <input type="submit" name="submit" value="上传" />
</form>

在这个表单中,我们使用了 enctype="multipart/form-data",这是因为图片和其他数据是以二进制流的形式上传的,而非字符串形式的,因此必须使用这种编码方式。

步骤二:PHP服务端实现

PHP 的服务器端实现由两部分组成:上传验证和文件处理。

上传验证

上传验证主要检查文件是否符合要求,同时生成一个唯一的文件名。

<?php
$max_size = 5*1024*1024; // 限制上传文件的大小为5M
$allowed_ext = array('jpg', 'jpeg', 'png', 'gif'); // 允许上传的文件格式

if (isset($_FILES['file'])) {
  // 判断上传文件是否出错
  if ($_FILES['file']['error']) {
    exit($_FILES['file']['error']); // 报告上传错误
  }
  // 检查文件大小是否符合要求
  if ($_FILES['file']['size'] > $max_size) {
    exit('文件大小超过5M,上传失败。');
  }
  // 获取文件的扩展名
  $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
  // 检查文件格式是否符合要求
  if (!in_array($ext, $allowed_ext)) {
    exit('不允许上传该类型的文件。');
  }
  // 生成唯一的文件名
  $file_name = md5(uniqid()).'.'.$ext;
}
?>

文件处理

文件处理主要是将上传的文件移动到服务器上指定的目录中。

<?php
if (isset($file_name)) {
  $path = "uploads/".$file_name; // 设置上传文件的保存路径
  if (move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
    echo '上传成功。'; // 输出上传结果
  } else {
    echo '上传失败。'; // 输出上传结果
  }
}
?>

步骤三:完整代码演示

<?php
$max_size = 5*1024*1024; // 限制上传文件的大小为5M
$allowed_ext = array('jpg', 'jpeg', 'png', 'gif'); // 允许上传的文件格式

if (isset($_FILES['file'])) {
  // 判断上传文件是否出错
  if ($_FILES['file']['error']) {
    exit($_FILES['file']['error']); // 报告上传错误
  }
  // 检查文件大小是否符合要求
  if ($_FILES['file']['size'] > $max_size) {
    exit('文件大小超过5M,上传失败。');
  }
  // 获取文件的扩展名
  $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
  // 检查文件格式是否符合要求
  if (!in_array($ext, $allowed_ext)) {
    exit('不允许上传该类型的文件。');
  }
  // 生成唯一的文件名
  $file_name = md5(uniqid()).'.'.$ext;
}

if (isset($file_name)) {
  $path = "uploads/".$file_name; // 设置上传文件的保存路径
  if (move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
    echo '上传成功。'; // 输出上传结果
  } else {
    echo '上传失败。'; // 输出上传结果
  }
}
?>

注:上传的文件会被保存在 uploads 目录下。

示例说明

示例一

上传一张宽度为 600 像素、高度为 400 像素的 jpg 格式图片。上传成功后,输出“上传成功”。

<form action="upload.php" method="post" enctype="multipart/form-data">
  <label for="file">上传图片:</label>
  <input type="file" name="file" id="file" />
  <br />
  <input type="submit" name="submit" value="上传" />
</form>

示例二

上传一张宽度为 1200 像素、高度为 800 像素的 bmp 格式图片。上传失败后,输出“不允许上传该类型的文件”。

<form action="upload.php" method="post" enctype="multipart/form-data">
  <label for="file">上传图片:</label>
  <input type="file" name="file" id="file" />
  <br />
  <input type="submit" name="submit" value="上传" />
</form>

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

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

相关文章

  • PHP高级编程实例:编写守护进程

    PHP 高级编程实例:编写守护进程 1、守护进程简介 守护进程(Daemons)是在系统后台运行的一种进程,其生命周期通常和操作系统保持一致,常用于长时间运行的进程服务。PHP 也可以使用守护进程模式实现一些需要后台执行的任务。当启动一个守护进程时,需要进行如下几个步骤: 把当前进程脱离控制台,即将父进程退出,子进程独立运行。 改变进程的工作目录,防止进程所…

    PHP 2023年5月24日
    00
  • 实例详解PHP中html word 互转的方法

    实例详解PHP中html word互转的方法 有时候我们需要将HTML格式的内容转换成Word文档,或者将Word文档转换成HTML格式的内容。PHP提供了一些方法来帮助我们实现这一功能。 将HTML转换成Word 使用PHPWord库 PHPWord是一个免费且开源的库,可以将HTML转换成Word文档。要使用PHPWord库,我们可以按照下面的步骤进行操…

    PHP 2023年5月23日
    00
  • php函数之子字符串替换 str_replace

    下面是关于PHP函数str_replace的详细讲解。 什么是str_replace str_replace是PHP中一种字符串替换的函数。它可以将源字符串中一部分子字符串匹配,并将其替换为新的子字符串。例如,如果你需要将一个字符串中的所有空格替换为下划线(_)号,你就可以使用str_replace函数。 str_replace的基本用法 str_repla…

    PHP 2023年5月26日
    00
  • php实现计算百度地图坐标之间距离的方法

    下面是详细的攻略: 背景说明 在开发地图类的应用中,经常会遇到需要计算两个经纬度坐标之间距离的需求。PHP作为一种广泛应用于Web开发的语言,在这方面也有很好的解决方案。 实现思路 计算两个经纬度坐标之间的距离,需要用到地球表面的弧长公式。常用的公式有“半正矢经度公式”、“球面三角法”、“平面直角坐标法”等,其中以“半正矢经度公式”最为常用。该公式的数学表示…

    PHP 2023年5月26日
    00
  • 如何免费激活FTPGetter Pro?附FTPGetter激活教程+注册机

    如何免费激活FTPGetter Pro? 为了激活FTPGetter Pro,我们需要使用注册机来生成注册名和注册码,然后输入激活程序中。下面是具体的步骤: 步骤 1:下载FTPGetter Pro和注册机 首先,我们需要下载FTPGetter Pro的安装程序和注册机。这可以通过从FTPGetter Pro官方网站下载获取。 步骤 2:安装FTPGette…

    PHP 2023年5月27日
    00
  • 8个PHP数组面试题

    接下来我将详细讲解“8个PHP数组面试题”的完整攻略,包括题目解析、示例代码及解答思路。 题目解析 以“8个PHP数组面试题”为例,这道题目是关于PHP数组的面试题目。在这道题目中,我们需要了解PHP数组的各种特性,包括:如何创建数组、如何遍历数组、数组的常用函数等。 同时,在解答这道题目时,我们需要注意几个问题: 确认题目要求: 在解答问题前,需要明确面试…

    PHP 2023年5月26日
    00
  • PHP写MySQL数据 实现代码

    下面是PHP写MySQL数据的完整攻略: 前置条件 在开始编写代码之前,需要确保已经完成以下操作: 安装并启动了 MySQL 数据库。 安装了 PHP。 创建数据库和表 在开始编写 PHP 代码之前,需要先创建数据库和表。可以通过以下 SQL 语句来完成: CREATE DATABASE dbname; USE dbname; CREATE TABLE ta…

    PHP 2023年5月27日
    00
  • PHP入门速成(1)

    下面是详细讲解“PHP入门速成(1)”的完整攻略。 PHP入门速成(1):概述 什么是PHP? PHP指的是“PHP: Hypertext Preprocessor”,是一种在Web开发中广泛使用的服务器端脚本语言。它可以用于创建动态Web页面、Web应用程序和Web服务等。 PHP语言的特点包括易学易用、开放源代码、跨平台、性能优秀、兼容多种数据库等。 如…

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