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


基础教程推荐
- php+mysql开发的最简单在线题库(在线做题系统)完整案例 2023-01-04
- PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br 2024-03-28
- PHP基于反射机制实现自动依赖注入的方法详解 2022-10-02
- PHP laravel使用自定义邮件类实现发送邮件 2023-07-03
- Laravel 解决composer相关操作提示php相关异常的问题 2023-03-08
- php生成短网址/短链接原理和用法实例分析 2023-04-20
- PHP采用get获取url汉字出现乱码的解决方法 2024-03-28
- php去除deprecated的实例方法 2022-09-02
- php如何获取当前日期和星期 2024-12-06
- Laravel修改验证提示信息为中文的示例 2023-03-08