PHP 图片文件上传实现代码

下面我来详细讲解一下“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实现状态模式

    下面是“学习php设计模式 php实现状态模式”的完整攻略。 什么是状态模式 状态模式,也称状态机模式(State Pattern或者State Machine Pattern),是一种行为型设计模式。它允许对象在其内部状态发生变化时改变它的行为,而不是在代码里面用一堆的 if else 来控制。 状态模式可以让代码更清晰、更简洁,并且更容易扩展和维护。它给…

    PHP 2023年5月27日
    00
  • php多文件上传实现代码

    针对“php多文件上传实现代码”的完整攻略,以下是步骤: 步骤1:编写HTML表单 在上传多个文件的情况下,需要使用<input type=”file” name=”name[]” multiple>,其中的multiple属性表示可以上传多个文件,name[]表示上传的文件名为一个数组。 示例代码: <form action="…

    PHP 2023年5月26日
    00
  • 微信JSSDK分享功能图文实例详解

    微信JSSDK分享功能图文实例详解 微信JSSDK是一个开发工具包,旨在通过注入一些JS代码,为微信公众号提供一些增强的功能。其中,微信JSSDK分享功能是其中较为重要的一部分,因为它提供了一种方便的方式,使网站或应用程序能够与微信的社交媒体进行交互,并将内容分享到朋友圈或会话中。 步骤一:前期准备 在使用微信JSSDK分享功能之前,你需要先完成以下准备工作…

    PHP 2023年5月23日
    00
  • PHP代码审核的详细介绍

    下面是“PHP代码审核的详细介绍”的攻略: 什么是PHP代码审核? PHP代码审核是一种检查和修复PHP程序的过程,它包括对PHP程序进行代码静态分析、代码风格的检查、代码安全漏洞的检查和修复。PHP代码审核是确保代码质量、代码稳定性和代码安全的一种手段。 为什么需要进行PHP代码审核? PHP代码审核的主要目的是确保代码质量、代码稳定性和代码安全。PHP代…

    PHP 2023年5月23日
    00
  • PHP将两个关联数组合并函数提高函数效率

    介绍:本文主要介绍如何使用PHP提高数组合并函数的性能。 一、问题 在PHP中,我们经常需要将两个关联数组合并起来,那么什么是关联数组呢?关联数组就是使用字符串作为下标的数组,例如: $array1 = array(‘key1’ => ‘value1’, ‘key2’ => ‘value2’); $array2 = array(‘key3’ =&…

    PHP 2023年5月26日
    00
  • PHP实现的进度条效果详解

    PHP实现的进度条效果详解 什么是进度条效果? 进度条效果是指在某个任务进行时,为了使用户了解当前任务完成的进度,而在页面中显示的一种显示进度的效果。 如何实现进度条效果? 实现进度条效果需要以下几个步骤: 在页面中创建一个进度条的容器元素,例如<div id=”progress”></div>。 使用JavaScript定时器或异步…

    PHP 2023年5月26日
    00
  • PHP使用GD库输出汉字的方法【测试可用】

    下面是详细的攻略: 1. 了解GD库 GD库是一款在PHP中非常流行的图片处理库,它可以让我们在PHP中轻松地实现图片的裁剪、缩放、添加水印等功能。而要输出汉字,我们则需要安装并启用GD库的FreeType支持。在安装GD库时,务必要开启FreeType支持。 2. 使用GD库输出汉字的步骤 2.1 将文字转换成图片 我们首先需要将要输出的汉字转换成图片。这…

    PHP 2023年5月26日
    00
  • PHP正在进行时-变量详解及字符串动态插入变量

    PHP正在进行时-变量详解及字符串动态插入变量 1. 变量 在PHP中,变量是存储数据的容器,它们可以保存各种类型的数据,如字符串,数字和数组等。变量在使用前需要进行声明、初始化,它们的命名需要遵循一定的规则,如不能以数字开头等。 语法 $variable_name = value; 其中,$variable_name代表变量的名字,value是变量的值,值…

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