30行代码搭建一个文件下载站!赶快来试试!

Ruokwok

活捉一只小RBQ
2020-02-26
11
10
3
25
蓝星
目前论坛还没有代码相关的板块,先发到这里。
由于经常折腾vps,常常用到一些安装脚本,但又要各大网站去翻太麻烦,于是用PHP写了个脚本仓库程序。在Linux上只需要wget或curl就行了,很方便。
演示
wget.ruok.cc

将以下代码保存到php文件中上传到网站根目录

另外需要将网站的默认页、403、404等定向到此文件,也就是说只要在此网站无论url怎么写都会进入这个页面。
然后可以用ftp等方法将文件上传至网站,前端即显示文件列表可下载,格式与常见的文件管理器相同。
注意!如果你上传了一个php或其它web服务器理解为可执行的文件,点击后不会下载而是执行它。

下载速度和服务器带宽和web软件有关,如果你和我一样只用来存放大小可忽略不计的脚本等文件,带宽都无所谓。


PHP:
<?php

$path = $_SERVER['REQUEST_URI'];
echo "<h3>Welcome to ruok's public resource pool</h3>";
echo "<p>Current directory: $path</p>";
$dir = @scandir("./".$path);
if ($dir == null) {
    header('HTTP/1.1 404 Not Found');
    exit("404 Not Found");
}
header('HTTP/1.1 200 OK');
foreach ($dir as $value) {
    if ($value != "index.php" && $value != ".") {
        if ($value == "..") {
            echo "<a href='$value'>../</a><br>";
        } else {
            if (strpos($value, ".") == false) {
                echo "<a href='$value'>" . $value . "/</a><span style='font-size: 12px'> Directory</span><br>";
            }
        }
    }
}
foreach ($dir as $value) {
    if ($value != "index.php" && $value != ".") {
        if (strpos($value, ".") != false) {
            $size = number_format(filesize("./" . $path. $value) /1024 /1024, 2) ." MB";
             echo "<a href='$value'>" . $value . "</a><span style='font-size: 12px'>  $size</span><br>";
        }
    }
}
 
最后编辑:

iVampireSP

一只小萌新
管理成员
2020-02-26
23
11
3
支持!
这个东西用于普通空间完全可以,不过一个VPS光搭建一个文件下载站的话apache2默认配置就行(指Ubuntu,其他系统没试过)(滑稽
 
  • 支持
反馈: 萌新杰少