使用PHP做一个超简单的文件下载页。
会自动检测除本目录下的除PHP文件外的所有文件,提供下载,TXT文本文件直接打开查看。
效果如下:
代码如下:
<?php // 用户列表 $user_list = ['admin' => 'admin']; $user = $_SERVER['PHP_AUTH_USER']; $pass = $_SERVER['PHP_AUTH_PW']; if ((@$user_list[$user] ?: '') !== $pass) { header('WWW-Authenticate: Basic realm="用户登录"'); header('HTTP/1.0 401 Unauthorized'); die("未登录"); } $list = []; foreach (glob('./*.*') as $r) { $f = pathinfo($r); if ($f['extension'] == 'php') { continue; } $f['size'] = filesize($f['basename']); $f['time'] = date('Y-m-d H:i:s', filemtime($f['basename'])); $list[] = $f; } function byte_format($size, $dec=2){ $a = array("B", "KB", "MB", "GB", "TB", "PB"); $pos = 0; while ($size >= 1024) { $size /= 1024; $pos++; } return round($size,$dec)." ".$a[$pos]; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="renderer" content="webkit"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <title>软件下载</title> <style> /* 简易表格 */ table.tb { font-family: Consolas,verdana,arial,sans-serif; font-size:14px; color:#333333; border-collapse: collapse; border: solid 2px #666666; } table.tb th { border: solid 1px #666666; padding: 5px 10px; background-color: #dedede; text-align: center; } table.tb td { border: solid 1px #666666; padding: 5px 10px; background-color: #ffffff; text-align:center; } </style> <link href="https://lib.baomitu.com/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"> <link href="https://lib.baomitu.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <script src="https://lib.baomitu.com/jquery/3.3.1/jquery.min.js"></script> </head> <body style="margin:10px;"> <h1>工具下载</h1> <hr> <table class="tb"> <thead> <tr> <th style="text-align: left;">文件名</th> <th style="text-align: right;">大小</th> <th>修改时间</th> </tr> </thead> <tbody> <?php foreach ($list as $r){ ?> <tr> <td style="text-align: left;"> <?php if ($r['extension'] == 'txt'){ ?> <a target="_blank" href="<?= $r['basename'] ?>"><?= $r['basename'] ?></a> <?php } else { ?> <a download="<?= $r['basename'] ?>" href="<?= $r['basename'] ?>"><?= $r['basename'] ?></a> <?php } ?> </td> <td style="text-align: right;"> <?php if ($r['size'] < 1024) { ?> <?= $r['size'] ?> b <?php }else{ ?> <?= byte_format($r['size']) ?> <?php } ?> </td> <td> <?= $r['time'] ?> </td> </tr> <?php } ?> </tbody> </table> </body> </html>
欢迎转载,转载请注明:转载自[ http://www.cnblogs.com/zjfree/ ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具