php实现网页常见文件上传功能

PHP实现网页文件上传功能的完整攻略如下:

1. HTML表单

文件上传功能需要通过一个HTML表单向服务器传递数据。

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="file" name="file">
    <input type="submit" value="上传">
</form>

在上面的表单中,enctype 属性必须设置为 multipart/form-data 表示这是一个包含文件的表单。文件表单需要使用 <input type="file"> 标签,通过 name 属性指定后台接收数据时的变量名。

2. PHP处理

PHP 通过 $_FILES 数组来处理上传的文件。在表单中的 name 属性会作为 $_FILES 中的下标。

<?php
if($_FILES['file']['error'] > 0){
    echo "上传错误:" . $_FILES['file']['error'];
} else {
    echo "上传文件名:" . $_FILES['file']['name'] . "<br>";
    echo "文件类型:" . $_FILES['file']['type'] . "<br>";
    echo "文件大小:" . ($_FILES['file']['size'] / 1024) . " KB<br>";
    echo "文件临时存储位置:" . $_FILES['file']['tmp_name'];
}
?>

上面的示例中,如果 $_FILES['file']['error'] 大于 0,说明文件上传出错。可以通过判断 $_FILES['file']['type'] 确定文件类型。文件大小可通过 $_FILES['file']['size'] 获取,单位是字节。文件会被存储在临时目录中,可以通过 $_FILES['file']['tmp_name'] 获得临时文件名。

3. 文件处理

在 PHP 中,可以使用 move_uploaded_file 函数将上传的文件从临时位置移动到指定目录。这步操作要放在所有文件处理之前,确保文件已经上传成功。

<?php
$filename = $_FILES['file']['name'];
$tmpName = $_FILES['file']['tmp_name'];
$folder = "uploads/";

if(move_uploaded_file($tmpName, $folder . $filename)) {
    echo "文件已上传!";
} else {
    echo "上传失败!";
}
?>

在以上示例中,$filename 存储上传的文件名,$tmpName 含有上传文件的临时文件名,$folder 是上传的文件存放目录,如果成功移动文件,输出“文件已上传”,否则输出“上传失败”。

示例一:

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="file" name="file">
    <br>
    <textarea name="description" rows="10" cols="30"></textarea>
    <br>
    <input type="submit" value="上传">
</form>

在上面的表单中添加了一个多行文本框,可以让用户输入文件的描述信息。在 PHP 处理中,可以使用 $_POST 数组来获取表单中的文本数据。

<?php
if($_FILES['file']['error'] > 0){
    echo "上传错误:" . $_FILES['file']['error'];
} else {
    echo "上传文件名:" . $_FILES['file']['name'] . "<br>";
    echo "文件类型:" . $_FILES['file']['type'] . "<br>";
    echo "文件大小:" . ($_FILES['file']['size'] / 1024) . " KB<br>";
    echo "文件临时存储位置:" . $_FILES['file']['tmp_name'] . "<br>";
    echo "文件描述:" . $_POST['description'] . "<br>";

    $filename = $_FILES['file']['name'];
    $tmpName = $_FILES['file']['tmp_name'];
    $folder = "uploads/";

    if(move_uploaded_file($tmpName, $folder . $filename)) {
        echo "文件已上传!";
    } else {
        echo "上传失败!";
    }
}
?>

在上面的 PHP 处理中,使用 $_POST['description'] 向客户端输出文件描述信息。如果想将文件描述信息保存到文件中,可以在 move_uploaded_file 函数后添加操作。

示例二:

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="file" name="fileMultiple[]" multiple>
    <br>
    <input type="submit" value="上传">
</form>

在上面的表单中,通过 multiple 属性开启多文件上传功能,name 属性指定后台接收数据时的变量名为 fileMultiple[],在 PHP 处理时需要使用循环结构。

<?php
$count = count($_FILES['fileMultiple']['name']);

for($i = 0; $i < $count; $i++){
    if($_FILES['fileMultiple']['error'][$i] > 0){
        echo "上传错误:" . $_FILES['fileMultiple']['error'][$i];
    } else {
        echo "上传文件名:" . $_FILES['fileMultiple']['name'][$i] . "<br>";
        echo "文件类型:" . $_FILES['fileMultiple']['type'][$i] . "<br>";
        echo "文件大小:" . ($_FILES['fileMultiple']['size'][$i] / 1024) . " KB<br>";
        echo "文件临时存储位置:" . $_FILES['fileMultiple']['tmp_name'][$i] . "<br>";

        $filename = $_FILES['fileMultiple']['name'][$i];
        $tmpName = $_FILES['fileMultiple']['tmp_name'][$i];
        $folder = "uploads/";

        if(move_uploaded_file($tmpName, $folder . $filename)) {
            echo "文件已上传!<br><br>";
        } else {
            echo "上传失败!<br><br>";
        }
    }
}
?>

在上面的 PHP 处理中,通过 count 函数统计上传文件的数量,使用 for 循环来处理每一个上传的文件。需要注意的是,此时 $_FILES['fileMultiple'] 是一个二维数组,需要使用 $_FILES['fileMultiple']['name'][$i] 这种方式来获取上传文件的名称等信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现网页常见文件上传功能 - Python技术站

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

相关文章

  • PHP获取学生成绩的方法

    学生成绩是学生教育中最重要的记录之一。对于学校、老师和学生自身,准确地记录和获取学生成绩是非常重要的。在教育管理系统、班级管理系统等网站中,获取学生成绩的方法也是一个必要的功能。下面,我们就来讲解如何用PHP获取学生成绩的方法。 获取学生成绩的前提 在获取学生成绩之前,我们需要先明确以下两个重要前提: 1. 数据库中存储学生成绩的结构 学生成绩的数据结构是通…

    PHP 2023年5月26日
    00
  • PHP中类型转换 ,常量,系统常量,魔术常量的详解

    PHP中类型转换、常量、系统常量、魔术常量的详解 类型转换 PHP中的类型转换可以分为两种情况,自动类型转换和强制类型转换。 1. 自动类型转换 自动类型转换是指PHP根据当前运算操作符的类型及各变量的数据类型,自动将变量的数据类型进行转换以完成运算或操作。 例如: $a = 10; $b = ’20’; $c = $a + $b; // 自动将$b转换为i…

    PHP 2023年5月26日
    00
  • 使命召唤12CPU到100解决办法

    以下是针对“使命召唤12CPU到100解决办法”的完整攻略: 问题描述 在玩使命召唤12时,有时候会发现游戏在运行时会导致CPU占用率飙升到100%,这会导致游戏运行缓慢,影响游戏体验。下面将提供几种解决办法。 解决办法 1. 关闭无关程序 在打开游戏之前,关闭所有不必要的后台程序,例如音乐播放器、浏览器等等,这些程序会占用一定的CPU资源,导致游戏运行卡顿…

    PHP 2023年5月27日
    00
  • 微信小程序名称可以修改几次? 微信小程序修改名称的方法

    下面是关于微信小程序名称修改的完整攻略,包括修改次数和方法介绍。 微信小程序名称可以修改几次? 微信小程序的名称可以修改不限次数,但是每次修改都需要重新提交审核,审核通过后才能使用。 微信小程序修改名称的方法 微信小程序修改名称的方法比较简单,只需要进入小程序管理后台即可。下面介绍具体步骤: 登录小程序管理后台,选择“开发”-“开发设置”-“基本设置” 在“…

    PHP 2023年5月23日
    00
  • 解析PHP实现多进程并行执行脚本

    下面是关于”解析PHP实现多进程并行执行脚本”的完整攻略。 简介 在某些情况下,我们需要在同一时刻执行多个任务,而不是按照顺序一个一个执行。这时,利用多进程并行执行脚本可以极大的提升程序的效率和执行速度,从而提高应用的性能。 PHP作为一种非常流行的服务器端脚本语言,提供了多种多进程执行的方法,通过这些方法,可以让我们轻松实现并行运算,达到提高效率的目的。 …

    PHP 2023年5月27日
    00
  • i7-9700和i7-8700哪个好 i7-9700和i7-8700区别对比评测

    i7-9700和i7-8700哪个好?i7-9700和i7-8700区别对比评测 当你准备升级电脑,想要选择英特尔的i7处理器时,你可能会犯愁于选择新款的i7-9700还是老款的i7-8700。这两款处理器的参数看起来类似,但是在性能、售价和功耗等方面都有所不同。下面我们将会一一从重要的方面详细讲解这两款处理器,帮助你做出更好的选择。 性能比较 i7-970…

    PHP 2023年5月27日
    00
  • php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析

    关于php中判断方法或函数是否存在,PHP提供了以下三个函数: function_exists(): 用于判断函数是否存在 method_exists(): 用于判断方法是否存在 is_callable(): 用于判断函数或方法是否可调用 function_exists() function_exists()函数用于判断指定的函数是否被定义。该函数需要传入一…

    PHP 2023年5月26日
    00
  • PHP htmlspecialchars() 函数实例代码及用法大全

    PHP htmlspecialchars() 函数实例代码及用法大全 1. 什么是htmlspecialchars()函数? htmlspecialchars()函数是PHP中一个常用的函数,其作用是将特殊字符转换成HTML实体,从而防止脚本注入或跨站点脚本攻击(XSS)。 2. htmlspecialchars()函数的语法 htmlspecialchar…

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