基于PHP.Mysql,apache搭建一个具有上传下载文件功能的网页
时间: 2024-03-27 18:38:00 浏览: 176
下面是一个基于PHP.Mysql,apache搭建的具有上传下载文件功能的网页示例:
1. 首先,在服务器上创建一个目录,用于保存上传的文件。比如,可以在/var/www/html目录下创建一个uploads目录:
```
$ sudo mkdir /var/www/html/uploads
```
2. 在/var/www/html目录下创建一个index.php文件,用于实现文件上传和下载功能:
```php
<!DOCTYPE html>
<html>
<head>
<title>文件上传下载</title>
</head>
<body>
<h2>上传文件</h2>
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="submit" value="上传">
</form>
<br>
<h2>下载文件</h2>
<ul>
<?php
// 遍历/uploads目录下的所有文件,生成下载链接
$dir = "/var/www/html/uploads/";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != "..") {
echo '<li><a href="download.php?file='.$file.'">'.$file.'</a></li>';
}
}
closedir($dh);
}
}
?>
</ul>
</body>
</html>
<?php
// 处理文件上传
if (isset($_FILES['file'])) {
$file = $_FILES['file'];
$target_dir = "/var/www/html/uploads/";
$target_file = $target_dir . basename($file["name"]);
if (move_uploaded_file($file["tmp_name"], $target_file)) {
echo "文件上传成功!";
} else {
echo "文件上传失败!";
}
}
?>
```
上面的代码中,通过HTML表单实现文件上传,将上传的文件保存到服务器上的/uploads目录下。通过遍历/uploads目录下的所有文件,生成下载链接,实现文件下载功能。
3. 在/var/www/html目录下创建一个download.php文件,用于实现文件下载功能:
```php
<?php
// 从GET参数中获取要下载的文件名
$file = $_GET['file'];
// 拼接文件路径
$filepath = "/var/www/html/uploads/".basename($file);
// 判断文件是否存在
if (file_exists($filepath)) {
// 下载文件
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($filepath));
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
} else {
echo "文件不存在!";
}
?>
```
上面的代码中,根据GET参数获取要下载的文件名,拼接文件路径,判断文件是否存在,若存在则以附件形式下载文件。
4. 最后,设置/uploads目录的文件权限,确保PHP可以读写该目录中的文件:
```
$ sudo chmod -R 777 /var/www/html/uploads
```
通过上述步骤,就可以在PHP.Mysql,apache环境下搭建一个具有上传下载文件功能的网页。
阅读全文