[详细指南] 利用 PHP 实现高效的下载管理系统 (栖云异梦睹玉第五章图文详细指南)

实现高效的下载管理系统

引言

下载管理系统是管理和组织下载文件的重要工具。本文将提供一个详细的指南,指导您使用 PHP 创建一个高效的下载管理系统。

先决条件

  1. PHP 7 或更高版本
  2. MySQL 或 MariaDB 数据库
  3. 文本编辑器或 IDE

数据库模式


CREATE TABLE `downloads` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(255) NOT NULL,`url` VARCHAR(255) NOT NULL,`size` INT(11) NOT NULL,
`downloads` INT(11) NOT NULL DEFAULT 0,`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
);

代码实现

下载文件


if (isset($_GET['id'])) {$id = $_GET['id'];$sql = "SELECT  FROM `downloads` WHERE `id` = $id";$result = $conn->query($sql);if ($result->num_rows > 0) {$row = $result->fetch_assoc();// 增加下载次数$sql = "UPDATE `downloads` SET `downloads` = `downloads` + 1 WHERE `id` = $id";$conn->query($sql);// 发送文件header("Content-Description: File Transfer");header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=" . $row['name']);header("Content-Length: " . $row['size']);readfile($row['url']);exit;} else {// 下载文件失败echo "下载文件失败";}
}

上传文件


if (isset($_FILES['file'])) {$name = $_FILES['file']['name'];$url = $_FILES['file']['tmp_name'];$size = $_FILES['file']['size'];// 确保文件小于 10MBif ($size < 10  1024  1024) {// 生成唯一的 ID$id = uniqid();// 保存文件信息到数据库$sql = "INSERT INTO `downloads` (`id`, `name`, `url`, `size`) VALUES ('$id', '$name', '$url', '$size')";$conn->query($sql);// 上传成功echo "文件上传成功";} else {// 文件太大echo "文件太大";}
}

管理下载


$sql = "SELECT  FROM `downloads` ORDER BY `created_at` DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {while ($row = $result->fetch_assoc()) {// 输出下载信息echo "

名称:{$row['name']}

大小:{$row['size']}

下载次数:{$row['downloads']}

下载:下载

删除:删除

";} } else {// 没有下载记录echo "没有下载记录"; }

数据库连接


$servername = "localhost";
$username = "root";
$password = "";
$dbname = "downloads";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("连接失败:" . $conn->connect_error);
}

CSS 样式(可选)

结论

本文介绍了如何使用 PHP 创建一个高效的下载管理系统。该系统允许用户上传和下载文件,并提供管理下载的界面。您可以根据自己的需求自定义和扩展该系统,比如添加用户认证、文件类型验证或下载速度限制。

© 版权声明

相关文章