php文件上传及下载附带显示文件及目录功能

PHP文件上传及下载附带显示文件及目录功能是web开发中常见的一个功能,下面我将结合相关代码,详细讲解这个功能的完成过程:

一、文件上传

文件上传是指将本地电脑上的文件上传到服务器端,以下是实现文件上传的步骤:

1.创建上传表单

在HTML中创建一个form表单,其中enctype属性设置为multipart/form-data,表示这是一个带文件上传的表单:

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

2.处理上传文件

在服务器端的PHP代码中处理上传的文件,使用php的内置函数move_uploaded_file进行文件上传,下面是一个上传文件的php代码示例:

if ($_FILES["file"]["error"] > 0) {
    echo "错误:" . $_FILES["file"]["error"] . "<br>";
} else {
    if (file_exists("upload/" . $_FILES["file"]["name"])) {
        echo $_FILES["file"]["name"] . "已经存在。";
    } else {
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
        echo "文件已经保存到: upload/" . $_FILES["file"]["name"];
    }
}

3.上传文件的存储

上传的文件一般保存在服务器端,这里我们创建一个upload目录,通过move_uploaded_file函数将上传的文件保存在该目录下。如果文件已经存在,则不进行保存并提示用户该文件已经存在。

二、文件下载

文件下载是指从服务器端下载文件到本地电脑,以下是实现文件下载的步骤:

1.创建下载链接

在HTML中创建一个链接,点击链接即可下载文件,链接的href属性是一个指向服务器端php文件的url,该php文件负责文件下载的处理:

<a href="download.php?file=文件名">文件下载</a>

2.处理下载文件

在服务器端的PHP代码中处理下载文件,使用php的内置函数readfile进行文件下载,下面是一个下载文件的php代码示例:

$file = "upload/".$_GET['file'];  //获取要下载的文件名

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".basename($file));
header("Content-Length: ".filesize($file));
readfile($file);
exit();

三、显示文件及目录

以下是显示文件及目录的步骤:

1.显示当前目录下的文件和目录

在服务器端的PHP代码中使用PHP的内置函数scandir获取当前目录下的文件列表,使用foreach循环输出。

$base_path = 'upload/';
$filesnames = scandir($base_path);
foreach ($filesnames as $name) {
    if ($name != '.' && $name != '..') {
        echo $name . '<br/>';
    }
}

2.显示指定目录下的文件和目录

加入一个参数dir,用来指定要显示的目录,代码如下:

$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
$base_path = 'upload/' . $dir;
$filesnames = scandir($base_path);
foreach ($filesnames as $name) {
    if ($name != '.' && $name != '..') {
        if (is_dir($base_path . '/' . $name)) {
            echo "<a href='?dir=$dir/$name'>$name</a><br/>";
        } else {
            echo $name . '<br/>';
        }
    }
}

在这段代码中,我们加入了当前目录的参数dir,如要显示的是upload目录下的文件或文件夹,则dir传递的是空值。如果要显示upload目录下的子目录或文件,则传递相应文件夹名字。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php文件上传及下载附带显示文件及目录功能 - Python技术站

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

相关文章

  • php数值计算num类简单操作示例

    PHP数值计算Num类是一个常用的数值运算工具类,它提供了一系列数值计算相关的方法,方便进行各种复杂的数值运算。本文将介绍Num类的使用方法,以及常用的数值运算示例。 Num类的使用方法 引入Num类 使用Num类之前必须先引入类文件,可以使用以下代码: require_once ‘Num.php’; 实例化Num类 $num = new Num(); 加法…

    PHP 2023年5月26日
    00
  • PHP上传 找不到临时文件夹的解决方法

    当使用 PHP 进行文件上传时,有时可能会遇到 “找不到临时文件夹”的问题。这种情况通常发生在临时文件夹不存在或不能访问的情况下。在这篇文章中,我们将讨论如何解决这个问题。 检查服务器配置 首先,我们需要检查服务器是否正确配置了临时文件夹。可以通过以下方式查看php.ini 文件配置: nano /etc/php/7.4/apache2/php.ini 在 …

    PHP 2023年5月27日
    00
  • PHP7常量数组用法分析

    PHP7常量数组用法分析 简介 在PHP程序开发中,常量数组是一个非常有用的数据结构,常量数组能够帮助开发者提高程序的可维护性和可读性。本文将详细讲解PHP7常量数组的使用方法及常见应用场景。 申明常量数组 申明一个常量数组可以使用 define() 函数以及 const 关键字。 使用 define() 函数 define(‘COLORS’, [‘red’…

    PHP 2023年5月26日
    00
  • php中array_slice和array_splice函数解析

    PHP中array_slice和array_splice函数解析 在 PHP 中,我们经常需要对数组进行各种操作,array_slice() 和 array_splice() 函数就是其中比较常用的两个函数。 array_slice 函数 array_slice 函数允许我们从一个数组中取出一段连续的元素,它的语法如下: array array_slice …

    PHP 2023年5月26日
    00
  • PHP 实现页面静态化的几种方法

    PHP 实现页面静态化的几种方法包括以下几种: 1. 静态文件生成 在 PHP 中,我们可以使用 ob_start() 和 ob_get_contents() 函数缓存动态生成的页面,然后将缓存中的内容写入一个静态文件中。当访问该页面时,优先访问静态文件,如果不存在则再动态生成。这样可以减少服务器压力,提高页面访问速度。 示例代码: <?php ob_…

    PHP 2023年5月27日
    00
  • PHP下载文件函数与用法示例

    当我们在使用PHP进行文件下载操作时,可以使用download_file()函数来实现。该函数可以将指定的文件下载到客户端本地。下面是该函数的用法示例: download_file()函数 <?php function download_file($path) { if (file_exists($path)) { header(‘Content-De…

    PHP 2023年5月25日
    00
  • 微信小程序实现图片选择并预览功能

    下面是实现微信小程序图片选择并预览的攻略: 1. 准备工作 首先,需要在小程序的app.json文件中进行设置,具体如下: { "pages": [ "pages/index/index" // 设置小程序的首页 ], "window": { "backgroundColor":…

    PHP 2023年5月30日
    00
  • PHP匿名函数(闭包函数)详解

    PHP匿名函数(闭包函数)详解 什么是匿名函数 匿名函数,也称为闭包函数,是一种可以在运行时定义的函数。匿名函数传统上被用来在代码中定义回调函数,也可以用来避免全局作用域的变量污染。 基本语法 匿名函数的基本语法如下: $my_function = function($param1, $param2, …) use ($var1, $var2, …)…

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