一、TinyFileManager 是什么

往下阅读之前,先看看这个页面效果吧

TinyFileManager 是一个多功能的基于 Web 的单文件 PHP 文件管理器,设计简洁高效。这个轻量级的单文件 PHP 应用程序可以轻松集成到任何服务器目录中,允许用户通过浏览器直接存储、上传、编辑和管理文件和文件夹。

注意! 避免在公共场合将此脚本用作标准文件管理器。并且作者建议:在完成任务后,务必从服务器中删除此脚本。

Tinyfilemanager 详细文档见这个 wiki 页面。

不得不说,TinyFileManager 与 Files Gallery 简直就是绝配,一个用来上传,一个用来浏览。下面截图是我弄的文件管理界面

二、使用方法

虽说是单文件,但是下载zip后,除了保留 tinyfilemanager.php 以外,还需要保留 translation.json 这个文件,因为它包含了语言配置信息,否则设置中文环境也无效。

1.改名

只需将 tinyfilemanager.php 复制到您的网络空间即可, 您也可以将文件名从 "tinyfilemanager.php" 更改为其他名称,您懂的。

2.使用附加配置文件(提高安全性)

在Tinyfilemanager.php 的上级文件夹(或者同级文件夹)下添加的 config.php 可作为附加配置,可忽略掉 Tinyfilemanager.php 内的配置信息

config.php 文件模板可以参照这个文件,不过这个文件中第一行 <?php 下面要留2-3行空白行,因为在页面中进行设置时会有配置信息覆盖这2行的

3.修改附加配置文件

1) 改密码

配置文件默认的用户名/密码是:admin/admin@123 和 user/12345。

作者也 警告:请在使用前在 $auth_users 中设置您自己的用户名和密码。密码使用 password_hash() 加密。

这个 hash 密码,我们可以随便弄个 php 测试页面,将获取到的哈希值密码替换掉配置文件里面的密码字符串即可

<div>
    <?php $userInput = ($_SERVER['REQUEST_METHOD'] === 'POST') ? htmlspecialchars($_POST['user_input'] ?? '') : ''; ?>
    <form method="POST">
        <input type="text" name="user_input" placeholder="请输入密码" value="<?= $userInput ?>" style="width: 300px;">
        <button class="" type="submit">提交</button>
    </form>

    <?php if ($_SERVER['REQUEST_METHOD'] === 'POST'): ?>
        <label>你的密码是:<?= $userInput ?></label><br>
        <label>密码的哈希值是:<?= password_hash($userInput, PASSWORD_ARGON2ID) ?></label>
        <!-- 第二个参数还可以用 PASSWORD_ARGON2I,PASSWORD_BCRYPT,PASSWORD_DEFAULT等 -->
    <?php endif; ?>
</div>

2)修改引入config.php文件的代码

tinyfilemanager.php 内部默认有一行下面的配置信息

$config_file = __DIR__ . '/config.php';

这是引入了同级文件内的附加配置文件 config.php ,如果我们需要引入在上一级添加的config.php,可将其修改为下面的内容

$config_file = __DIR__ . '/../config.php';

3) 修改文件需要管理的目录

找到并修改 $root_path$root_url 这两个变量

  • $root_path 变量是文件管理中文件的绝对目录
  • $root_url 变量是文件管理器中链接的根 url。相对于 $http_host 也就是 $_SERVER['HTTP_HOST']
// Root path for file manager
// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder'
//make sure update $root_url in next section
$root_path = $_SERVER['DOCUMENT_ROOT'].'/webdata';

// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder'
// Will not working if $root_path will be outside of server document root
$root_url = '/webdata';

4.权限设置

文件管理器使用的是web服务,默认的用户是 www-data,如果权限不足(无法上传文件,无法设置配置信息),可以将对应的目录或文件修改为当前用户

修改 webdata 的所有者

chown -R www-data:www-data webdata

或者修改 webdata 的权限

chmod -R 775 webdata

5.其他

要启用/禁用身份验证,请将 $use_auth 设置为 true 或 false。

要在没有 CDN 资源的情况下离线工作,请使用 offline 分支。