3

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

我发现在响应式文件管理器中限制文件夹的唯一方法是设置 PHP 会话变量:

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

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

有没有办法使用 JS 配置选项或其他一些每次调用而不是每个用户的方式来做到这一点?

他们的功能列表说:

您可以将子文件夹设置为根并更改每个用户、页面或 FileManager 调用的配置。

但我无法在他们的文档中找到每个呼叫文件夹的限制。

4

1 回答 1

3

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

考虑你的上传目录是上传 ,你有user1user2user3作为子目录,所以,在这种情况下,我们将在config.php中根据我们将在调用时传递的参数动态设置上传路径和当前路径对话框.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 将仅显示该特定目录。

于 2017-08-23T05:47:40.567 回答