使用 JS 限制响应式 FileManager 文件夹?

Restricting Responsive FileManager Folder With JS?

我将 Responsive FileManager 作为独立软件广泛使用(不是通用文本编辑器的一部分)。我有时会在一页上多次调用它。但是,每次我都希望它被限制在某个文件夹中——不仅是因为它默认为一个文件夹,而且用户根本无法导航到任何其他文件夹。

我发现在 Responsive FileManager 中限制文件夹的唯一方法是设置 PHP 会话变量:

$_SESSION['RF']['subfolder']

但是,对于需要位于同一页面上的不同文件夹来说,这是一个问题,并且通常这是不切实际的,因为限制应该特定于文件管理器调用,而不是像会话那样特定于用户。另外,我不需要绝对不可能以安全的方式导航到其他文件夹,如果知道如何使用浏览器调试器的人导航到其他地方也没关系。我只是想防止临时用户这样做。

有没有办法使用 JS 配置选项或其他按调用而非按用户方式执行此操作?

他们的功能列表说:

You can set a subfolder as the root and change the configuration for each user, page or FileManager call.

但我无法在他们的文档中找到每次调用的文件夹限制。

这里有一个简单的调整来实现这一点。 Responisve 文件管理器调用 dialog.php 并附加一些参数,例如类型。我所做的是:引入一个新参数并在服务器端检查该参数以动态设置上传路径。

考虑您的上传目录是 uploads 你有 user1 , user2 , user3 作为子目录,所以,在这种情况下,我们将在 config.php[ 中设置上传路径和当前路径=42=] 从我们将在调用 dialog.php

时传递的参数中动态获取

在filemanager/config/config.php 附加这些行

if( isset( $_GET['MY_UPLOAD_PATH']))
 {
   $config['upload_dir']   =  $config['upload_dir'] . $_GET['MY_UPLOAD_PATH']."/" ;
   $config['current_path'] =  $config['current_path'] . $_GET['MY_UPLOAD_PATH']."/" ;
}

在filemanager/dialog.php 找到这一行 $get_params = http_build_query($get_params); 在该行之前添加

  if(isset($_GET['MY_UPLOAD_PATH'])){
     $get_params['MY_UPLOAD_PATH'] = $_GET['MY_UPLOAD_PATH'] ;
   }

现在更改您的变量

$data['file_explorer'] = base_url('assets/resources/filemanager/dialog.php?type=0');

 $data['file_explorer'] = base_url('assets/resources/filemanager/dialog.php?type=0&MY_UPLOAD_PATH=user1');

只需更改 MY_UPLOAD_PATH 参数的值,dialog.php 将仅显示该特定目录。