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技术站