PHP实现文件上传和多文件上传

yizhihongxing

下面是详细讲解“PHP实现文件上传和多文件上传”的完整攻略。

文件上传

文件上传是指将文件从客户端上传到服务器,PHP实现文件上传的步骤如下:

  1. 在前端页面添加文件上传表单,例如:
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="上传">
</form>

其中,enctype="multipart/form-data"代表表单中包含文件上传。

  1. 创建upload.php文件用于文件上传处理,代码如下:
<?php
if ($_FILES) {
    $targetDir = "uploads/";
    $targetFile = $targetDir . basename($_FILES["file"]["name"]);
    $uploadOk = 1;
    $fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
    if (file_exists($targetFile)) {
        echo "文件已存在。";
        $uploadOk = 0;
    }
    if ($_FILES["file"]["size"] > 500000) {
        echo "文件过大。";
        $uploadOk = 0;
    }
    if ($fileType != "jpg" && $fileType != "jpeg" && $fileType != "png" && $fileType != "gif") {
        echo "文件类型不支持。";
        $uploadOk = 0;
    }
    if ($uploadOk == 0) {
        echo "文件上传失败。";
    } else {
        if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
            echo "文件上传成功。";
        } else {
            echo "文件上传失败。";
        }
    }
}
?>

代码解析:

  • if ($_FILES)判断是否有文件上传。
  • $targetDir为上传目录路径,可以设置为任意目录。
  • $targetFile为上传文件路径,由上传目录路径和上传文件名组成。
  • $uploadOk用于判断上传文件是否成功,初始为1,表示上传成功。
  • $fileType为上传文件类型,例如jpg、png等。
  • file_exists()函数判断上传文件是否已存在。
  • $_FILES["file"]["size"]为上传文件的大小,单位为字节。
  • strtolower()函数将文件后缀转化为小写字母。
  • move_uploaded_file()函数将上传文件移动到指定目录。

多文件上传

多文件上传是指一次性上传多个文件到服务器。与文件上传相比,多文件上传的处理方式有所不同,PHP实现多文件上传的步骤如下:

  1. 在前端页面添加多文件上传表单,例如:
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file[]">
    <input type="file" name="file[]">
    <input type="submit" value="上传">
</form>

其中,name="file[]"代表上传多个文件,每个文件的名称分别为file[0]file[1]等。

  1. 创建upload.php文件用于多文件上传处理,代码如下:
<?php
if ($_FILES) {
    $targetDir = "uploads/";
    $uploadOk = 1;
    for ($i = 0; $i < count($_FILES["file"]["name"]); $i++) {
        $targetFile = $targetDir . basename($_FILES["file"]["name"][$i]);
        $fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
        if (file_exists($targetFile)) {
            echo $_FILES["file"]["name"][$i] . " 文件已存在。";
            $uploadOk = 0;
        }
        if ($_FILES["file"]["size"][$i] > 500000) {
            echo $_FILES["file"]["name"][$i] . " 文件过大。";
            $uploadOk = 0;
        }
        if ($fileType != "jpg" && $fileType != "jpeg" && $fileType != "png" && $fileType != "gif") {
            echo $_FILES["file"]["name"][$i] . " 文件类型不支持。";
            $uploadOk = 0;
        }
        if ($uploadOk == 0) {
            echo $_FILES["file"]["name"][$i] . " 文件上传失败。";
        } else {
            if (move_uploaded_file($_FILES["file"]["tmp_name"][$i], $targetFile)) {
                echo $_FILES["file"]["name"][$i] . " 文件上传成功。";
            } else {
                echo $_FILES["file"]["name"][$i] . " 文件上传失败。";
            }
        }
    }
}
?>

代码解析:

  • for ($i = 0; $i < count($_FILES["file"]["name"]); $i++)循环处理上传的多个文件。
  • $_FILES["file"]["name"][$i]为第$i个上传文件的名称。
  • $targetFile为当前上传文件的路径。
  • $uploadOk用于判断当前上传文件是否成功,初始为1,表示上传成功。

以上就是实现文件上传和多文件上传的完整攻略,希望对你有所帮助。

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

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

相关文章

  • PDO实现学生管理系统

    实现一个学生管理系统,需要使用数据库来存储学生的信息,而PHP提供了许多不同的数据库接口,其中PDO是一个流行的选择,因为它提供了一个统一的方式访问多种不同类型的数据库。 下面是实现PDO学生管理系统的完整攻略: 创建数据库表 首先需要创建一个包含学生信息的数据表。例如,可以创建一个名为“students”的表,包含学生的姓名、年龄、性别、成绩等字段。在执行…

    PHP 2023年5月24日
    00
  • python中实现php的var_dump函数功能

    要在Python中实现PHP中的var_dump函数的功能,需要运用Python的一些内置模块和数据类型。 具体步骤如下: 1. 获取变量的类型 使用Python的type()函数获取变量的类型,该函数返回变量的类型对象。 example1 = 10 example2 = ‘Hello World’ example3 = [1,2,3] example4 =…

    PHP 2023年5月26日
    00
  • 荣耀note10和小米max3哪款更好?荣耀note10和小米max3区别对比评测

    荣耀Note10和小米Max3哪款更好? 前言 荣耀Note10和小米Max3作为一款中高端大屏手机,都拥有着不同的特点。那么究竟能否确认哪一款更好一些呢?下面,我将对荣耀Note10和小米Max3进行详细区别和对比评测。 外观设计 荣耀Note10和小米Max3在外观上有着很大的不同。荣耀Note10拥有着6.95英寸屏幕,而小米Max3则是6.9英寸。此…

    PHP 2023年5月27日
    00
  • PHP中流的定义及作用详解

    以下是“PHP中流的定义及作用详解”的完整使用攻略,包括流的基本概念、常见类型和示例说明等内容。 流的基本概念 流是指在程序中对数据进行输入和输出的一种机制。在PHP中,流可以用于读取和写入文件、网络通信、数据压缩等操作。 常见类型 以下是PHP中常见的流类型: 1. 文件流 文件流指对文件进行读取和写入的一种流类型。在PHP中,可以使用fopen函数打开文…

    PHP 2023年5月12日
    00
  • 将php数组输出html表格的方法

    下面是将php数组输出为html表格的方法攻略: 第一步:定义要输出的数组 首先需要定义一个数组变量,可以通过以下代码创建: $data = array( array("John", "Doe", "john@example.com"), array("Mary", "…

    PHP 2023年5月23日
    00
  • PHP flock 文件锁详细介绍

    PHP flock 文件锁详细介绍 在并发场景中,多个进程、线程对同一个文件进行读写可能会导致文件的混乱和损坏。文件锁是一种常用机制,可以保证文件的操作在同一时间只能被一个进程或线程执行,避免数据不一致和文件损坏。本篇文章将介绍PHP文件锁的使用方法和注意事项。 文件锁类型 在使用文件锁之前,先了解两种常见的文件锁类型: 共享锁(Shared lock) 共…

    PHP 2023年5月26日
    00
  • 最常用的PHP正则表达式收集整理

    当我们需要根据某种规则匹配文本中的内容时,经常使用正则表达式。PHP是一门非常流行的编程语言,而其内置的正则表达式函数库也相当强大,可以帮助我们完成许多文本匹配工作。本文将提供一份介绍最常用的PHP正则表达式的文档,以下是完整攻略: 最常用的PHP正则表达式收集整理 基本元素 字符 字符是正则表达式的最基本组成部分。可以用于匹配字面值(如“a”、“b”等)或…

    PHP 2023年5月26日
    00
  • php按单词截取字符串的方法

    PHP 按单词截取字符串的方法,一般可以使用 explode 函数来完成。具体步骤如下: 使用 explode 函数把字符串按照空格划分成一个一个的单词,返回数组形式,代码如下: $words = explode(‘ ‘, ‘I love coding in PHP’); 再使用 implode 函数把前几个单词拼接在一起,代码如下: $newString …

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