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安全配置

    PHP是一种极其流行的编程语言,广泛应用于Web编程,包括网站开发和后端开发。在使用PHP进行开发的过程中,正确的安全配置是至关重要的。以下是一份详细讲解“PHP安全配置”的完整攻略: 1. 开启错误报告 在PHP开发过程中,开启错误报告可以帮助我们及时发现代码存在的错误和漏洞。有两种方式可以开启错误报告: 在php.ini文件中配置 在php.ini文件中…

    PHP 2023年5月23日
    00
  • Java调用新浪api通过Ip查询地区

    下面我将给出Java调用新浪api通过Ip查询地区的完整攻略,并提供两条示例说明。 1. 确认使用的API 要调用新浪API查询地区,需要使用 http://int.dpool.sina.com.cn/iplookup/iplookup.php 这个API。 2. 获取API返回的数据 调用API后,会返回一段包含IP地址信息的JSON数据,在Java中需要…

    PHP 2023年5月27日
    00
  • 微信小程序 PHP生成带参数二维码

    下面是微信小程序 PHP生成带参数二维码的完整攻略。 1. 需要准备的材料 微信小程序 AppID 和 AppSecret PHP 后端服务器 PHP 生成二维码的库和扩展 微信开放平台的 access_token 2. 如何获取 access_token 在访问微信公众平台的接口前,需要先获取 access_token。可以通过以下步骤获取 access_…

    PHP 2023年5月23日
    00
  • WIN2000 Apache php mysql 安装及安全手册

    WIN2000 Apache PHP MySQL 安装及安全手册 本文将讲解在 Windows 2000 操作系统上安装并配置 Apache、PHP 和 MySQL 的详细步骤,并介绍一些安全性方面的注意事项。 安装 Apache 下载 Windows 版本的 Apache 安装包,推荐使用最新版本的 XAMPP。请访问 Apache Friends 网站 …

    PHP 2023年5月27日
    00
  • PHP7中对十六进制字符串处理的问题详解

    标题:PHP7中对十六进制字符串处理的问题详解 背景 在 PHP 7 之前,关于十六进制字符串处理的函数有很多限制和缺陷。例如,无法处理超过 0x7fffffff 的十六进制值,也无法处理空格分隔的十六进制值等等。而在 PHP 7 中,引入了新的十六进制字符串处理函数,解决了这些问题。 新增函数 hex2bin() hex2bin() 函数将一个十六进制字符…

    PHP 2023年5月26日
    00
  • PHP实现生成推广海报的方法详解

    PHP实现生成推广海报的方法详解 生成推广海报是网络推广中常见的一种方式,可以帮助推广者更好地展示产品和服务。在本篇文章中,我们将详细讲解如何使用PHP实现生成推广海报的方法。 1. 准备工作 在开始之前,我们需要安装一个强大的PHP库——GD库。GD(Gif Draw)库是一个开源的绘图库,用于创建动态和静态图片。要使用GD库,您需要在PHP配置中启用该模…

    PHP 2023年5月23日
    00
  • PHP如何实现跨域

    实现跨域请求一般可以使用以下三种方法: 修改目标服务器响应头信息 使用代理服务器转发请求 JSONP跨域请求 下面我会详细讲解每种方法的实现以及示例说明。 方法一:修改目标服务器响应头信息 当浏览器端发起获取其他域下的数据时,浏览器会限制跨域请求,此时可以通过修改目标服务器响应头信息来实现跨域。通常使用Access-Control-Allow-Origin来…

    PHP 2023年5月27日
    00
  • 在服务端进行目录建立、删除,文件上传、删除的过程的php代码

    在服务端进行目录建立、删除,文件上传、删除的过程涉及到文件系统的操作,需要使用PHP的文件系统函数来实现。下面是具体的攻略: 一、目录建立 在PHP中,可以使用mkdir()函数来创建目录。该函数的基本语法如下: mkdir($path, $mode, $recursive); 参数说明: $path:要创建的目录路径; $mode:目录权限。默认为0777…

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