PHP 简易文件下载页

Posted ZjFree-自由自在

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 简易文件下载页相关的知识,希望对你有一定的参考价值。

使用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>

 

以上是关于PHP 简易文件下载页的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 PHP,预期文件结尾,我错在哪里?

PHP入门-PHP简易分页并修改用户名

动态内存分配php

PHP常用代码片段

微信小程序代码片段

PHP简易系统环境控制